1. Trang chủ
  2. » Luận Văn - Báo Cáo

CT239 NIÊN LUẬN CƠ SỞ GAME NIM

22 453 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

NienLuan docx TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀNTHÔNG � NIÊN LUẬN CƠ SỞ NGÀNH KỸ THUẬT PHẦN MỀM ĐỀ TÀI GAME NIM Giảng viên hướng dẫn Sinh viên thực hiện HỌC KỲ II, 2021 2022 ĐÁNH GIÁ CỦA GIẢNG VIÊN MỤC LỤC CHƯƠNG 1 TỔNG QUAN 1 1 1 Mô tả bài toán 1 1 2 Mục tiêu cần dạt được 1 1 3 Hướng giải quyết 1 1 4 Lên kế hoạch thực hiện 1 CHƯƠNG 2 LÝ THUYẾT 2 2 1 MỘT SỐ KHÁI NIỆM LIÊN QUAN ĐẾN BÀI TOÁN 2 2 1 1 Trò chơi tổ hợp cân bằng 2 2 1 2 Trò chơi Nim chuẩn 2 2 1 3 Định lý Bout.

TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀNTHÔNG -🕮 NIÊN LUẬN CƠ SỞ NGÀNH KỸ THUẬT PHẦN MỀM ĐỀ TÀI GAME NIM Giảng viên hướng dẫn Sinh viên thực HỌC KỲ II, 2021-2022 ĐÁNH GIÁ CỦA GIẢNG VIÊN MỤC LỤC CHƯƠNG 1: TỔNG QUAN 1.1 Mô tả toán 1.2 Mục tiêu cần dạt 1.3 Hướng giải 1.4 Lên kế hoạch thực CHƯƠNG 2: LÝ THUYẾT 2.1 MỘT SỐ KHÁI NIỆM LIÊN QUAN ĐẾN BÀI TỐN 2 2.1.1 Trị chơi tổ hợp cân 2.1.2 Trò chơi Nim chuẩn 2.1.3 Định lý Bouton 2.1.4 Phép bitwise XOR 2.2 VẬN DỤNG VÀO BÀI TOÁN CHƯƠNG 3: ỨNG DỤNG 3.1 PHÂN TÍCH U CẦU BÀI TỐN 4 3.1.1 Tổng quan ứng dụng 3.1.2 Yêu cầu chức 3.1.3 Yêu cầu phi chức 3.1.4 Giả định phụ thuộc 3.2 XÂY DỰNG CẤU TRÚC DỮ LIỆU 3.2.1 3.3 Tổ chức liệu cần thiết KIẾN TRÚC HỆ THỐNG 5 3.3.1 Mảng java 3.3.2 Sự kiện (Event) Java Swing 3.3.3 Thiết kế giải thuật 3.4 GIỚI THIỆU CHƯƠNG TRÌNH 3.5 QUY TRÌNH SỬ DỤNG 11 CHƯƠNG 4: KẾT LUẬN VÀ ĐÁNH GIÁ 12 PHỤ LỤC 13 5.1 HƯỚNG DẪN SỬ DỤNG TÀI LIỆU THAM KHẢO 13 17 DANH MỤC HÌNH Hình Lưu đồ giải thuật xử lý máy đánh Hình Giao diện game Hình Giao diện nhấn THỐT Hình Giao diện game chọn chơi với NGƯỜI với MÁY Hình Quy trình chức game Hình Giao diện Hình Nút HƯỚNG DẪN Hình Nội dung hướng dẫn Hình Nút hướng dẫn Hình 10 Yêu cầu xác nhận Hình 11 Chọn chế độ chơi Hình 12 Giao diện bàn cờ Hình 13 Sau bỏ viên sỏi cuối hàng Hình 14 Nút bắt đầu Hình 15 Nút tạo lại Hình 16 Nút trở lại CHƯƠNG 1: TỔNG QUAN 1.1 Mơ tả tốn Hiện với phát triển mạnh mẽ công nghệ thông tin, vấn đề từ cơng việc, quản lý,… đến giải trí thay gần hoàn toàn ứng dụng từ công nghệ phát triển qua năm gần Quả thật so sánh đơn giản từ có hỗ trợ cơng nghệ, phần mềm hiệu làm việc, giải trí tăng lên nhiều Nói riêng mảng giải trí, việc ứng dụng cơng nghệ làm thay đổi hoàn toàn cách tiếp cận người Khi cơng nghệ thơng tin chưa phát triển, khơng có nhiều lựa chọn thơng qua ứng dụng youtobe, spotify, có khác biệt hoàn toàn Ngay game xuất nhiều thể loại Gacha, RPG, MOBA, Giải trí nhu cầu thiết yếu người ảnh hưởng nhiều đến người Chẳng hạn làm việc căng thẳng, mệt mỏi chơi game, nghe nhạc, giúp thư giãn tiếp tục công việc hiệu 1.2 Mục tiêu cần dạt Nắm bắt vấn đề cần giải với mong muốn ứng dụng kiến thức học vào thực tế Vì mục tiêu đề tài xây dựng trị chơi đơn giản để giải trí Bên cạnh ứng dụng cần có giao diện đồ họa đơn giản, dễ sử dụng, giúp người dùng dễ dàng tương tác Và đặc biệt có áp dụng giải thuật Lý thuyết trò chơi game Nim để giải vấn đề 10 11 13 13 13 14 14 14 14 15 15 15 16 1.3 Hướng giải Xây dựng giao diện deskop thân thiện dễ sử dụng Xử lý cách người chơi tương tác, chọn chế độ chơi người với người người với máy để tăng hứng thú 1.4 Lên kế hoạch thực Bước 1: Đầu tiên xác định kỹ lại yêu cầu, nghiên cứu lại giải pháp giải quyết, cách ứng dụng lý thuyết trị chơi game nim vào tốn Bước 2: Thiết kế ứng dụng, mơ hình tổng thể ứng dụng Phát họa giao diện, chức năng, tìm kiếm cách xử lý Bước 3: Lập trình: Tiến hành viết code, xử lý thành lập chức ứng dụng giao diện đồ họa Bước 4: Kiểm tra lại ứng dụng, xử lý lỗi Ngoài ra, trình thực cần nghiên cứu tài liệu tham khảo, đồng thời viết báo cáo khoa học CHƯƠNG 2: LÝ THUYẾT 2.1 MỘT SỐ KHÁI NIỆM LIÊN QUAN ĐẾN BÀI TỐN 2.1.1 Trị chơi tổ hợp cân Trò chơi tổ hợp trò chơi gồm: hai người chơi (gọi người chơi trước A, người sau B), tập hữu hạn trạng thái S đạt trị chơi Mỗi người chơi có tập hợp bước di chuyển hợp lệ Q để di chuyển từ trạng thái sang trangj thái khác tập trạng thái kế thúc gọi T ⊂ S Hai người chơi luân phiên di chuyển từ trạng thái sang trạng thái khác Người đến trạng thái kết thúc trước người chiến thắng 2.1.2 Trị chơi Nim chuẩn Có n đống sỏi, đống có p1,p2, pn sỏi, số pi số ngun khơng âm Mỗi trạng thái trò chơi tương ứng với n cho biết số sỏi đống Có hai người chơi thay phiên bỏ sỏi Người chơi lượt loại bỏ sỏi tùy thích, miễn tất sỏi đống Hình thức hơn, người chơi chọn đống sỏi i số lượng sỏi j để loại bỏ khỏi đống (0 < j S = 1111 = 15 Ta có p1 ⊕ S = 1011 = 11 > (n1) P2 ⊕ S = 1010 = 10 > (n2) P3 ⊕ S = 1100 = 12 > (n3) P4 ⊕ S = 0110 = < (n4) Vậy n4 hàng cần xử lý Cách xử lý từ n4 lấy 9– 6=3 viên tương ứng với công thức j = pi – (pi ⊕ S) ( điều kiện pi ⊕ S < pi ) Sau cập nhật lại số đá pi = pi – j Sau thực thao tác bàn cờ cập nhật lại thành N1 có p1 = ⬄ 0100 N2 có p2 = ⬄ 0101 N3 có p3 = ⬄ 0111 N4 có p4 = ⬄ 0110 Vậy => S = 0000 (đây trạng thái mà cần đạt hay gọi yêu cầu để thắng dựa theo định lý Bouton) Ghi chú: - ⬄ 0100 chuyển từ thành dạng nhị phân - p1 ⊕ S = 1011 dựa theo tính chất phép XOR CHƯƠNG 3: ỨNG DỤNG 3.1 PHÂN TÍCH U CẦU BÀI TỐN 3.1.1 Tổng quan ứng dụng Ứng dụng giải yêu cầu dựa vào giải thuật nêu để tạo hai trạng thái game người x người người x máy Trong người x máy máy dựa vào giải thuật để tự đưa định Sau truy cập vào game người dùng thực cơng việc sau: Xem hướng dẫn chơi game, chọn chơi với người, chơi với máy thoát 3.1.2 Yêu cầu chức Yêu cầu chức ● Mô tả Ứng dụng phải đảm bảo bottom hoạt động chức Yêu cầu chức ● Mô tả Phải sinh bàn cờ ngẫu nhiên Yêu cầu chức ● Mơ tả Đối với chức người với máy ưu tiên cho người trước Yêu cầu chức ● Mô tả Đối với botton THOÁT phải yêu cầu người dùng xác nhận 3.1.3 Yêu cầu phi chức Yêu cầu giao diện Giao diện đơn giản, thân thiện, giúp người dùng dễ thao tác sử dụng u cầu hiệu suất Khơng có u cầu Yêu cầu phần cứng Bộ xử lý 32 bit (x86) 64 bit (x64) Bộ nhớ trong: đĩa cứng có dung lượng trống 20GB trở lên Yêu cầu phần mềm Hệ điều hành : Window, macOS 3.1.4 Giả định phụ thuộc Các giả định phụ thuộc Máy tính có cài sẵn NetBean 3.2 XÂY DỰNG CẤU TRÚC DỮ LIỆU 3.2.1 Tổ chức liệu cần thiết Để tương tác với đối tượng cần sử dụng số hàm cần thiết như: addButton(): Để thêm chuối button vào bàn cờ NguoiActionPerformed(ActionEvent evt): Tạo kiện cho button NGƯỜI MayActionPerformed(ActionEvent evt): Tạo kiện cho button MÁY HuongDanActionPerformed(ActionEvent evt): Tạo kiện cho button HƯỚNG DẪN ThoatActionPerformed(ActionEvent evt): Tạo kiện cho button THOÁT JOptionPane.showConfirmDialog(rootPane, evt, title, WIDTH): Tạo Dialog để đưa thông báo Getjbutton(): Trả button setjButton(JButton button): Thiết lập button TroLaiActionPerformed(ActionEvent evt): Tạo kiện để quay trở lại giao diện BatDauActionPerformed(ActionEvent evt): Tạo kiện để bắt đầu game TaoLaiActionPerformed(ActionEvent evt): Tạo bàn cờ 3.3 KIẾN TRÚC HỆ THỐNG 3.3.1 Mảng java Mảng loại liệu tập hợp nhiều phần tử, phần tử đánh dấu vị trí mục Nếu mảng có 10 phần tử số thứ tự phần tử từ [0->9] Chúng ta thường sử dụng mảng để lưu trữ liệu dạng danh sách Ví dụ để lưu trữ danh sách tên sinh viên lớp sử dụng mảng, phần tử tên thành viên lớp Khai báo mảng đê button: List list = new ArrayList(); Yêu cầu để sử dụng mảng phải import thư viện Jbutton, List ArrayLisst 3.3.2 Sự kiện (Event) Java Swing Sự kiện hành động tác động đến đối tượng xuất giao diện button, CheckBox,… Qua ta bắt kiện yêu cầu java swing thực thi thao tác Mỗi kiện gán nhiều hành động Ví dụ nút botton với chức thốt, nhấn vào botton xuất bảng yêu cầu xác nhận có hay khơng Ví dụ code cho nút thoát: private void ThoátActionPerformed(java.awt.event.ActionEvent evt) { int result = JOptionPane.showConfirmDialog(null, "BẠN CĨ CHẮC CHẮN MUỐN THỐT" ,"XÁC NHẬN" , JOptionPane.YES_NO_OPTION); if(result == JOptionPane.YES_OPTION){ System.exit(0); } } 3.3.3 Thiết kế giải thuật Đầu vào ứng dụng Người dùng chọn nút NGƯỜI, MÁY, HƯỚNG DẪN, THOÁT giao diện Đầu ứng dụng Tử thao tác Click người dùng vào botton hệ thống xử lý tương ứng Ví dụ nhấn vào HƯỚNG DẪN xuất bảng để hiển thị quy tắc chơi Lưu đồ giải thuật xử lý máy đánh Hình Lưu đồ giải thuật xử lý máy đánh Giải thuật xử lý máy đánh thể hình Đầu tiên gọi ba biến int take (số sỏi lấy), S (nimsum) Bước kiểm tra S có khác hay khơng? Nếu khác khơng kiểm tra số sỏi hàng XOR với S có lớn số sỏi có hay khơng Nếu nhỏ tiến hành take = SoSoi – (SoSoi^S) cập nhật lại SoSoi = SoSoi – take, điều kiện lớn chuyển qua đống sỏi quay lại kiểm tra tiếp Đối với ngoại lệ điều kiện if S = take = rand(SoSoi) + (lấy ngẫu nhiên sỏi ), SoSoi = SoSoi – take 3.4 GIỚI THIỆU CHƯƠNG TRÌNH Các tinh bật Ứng dụng có nhứng chức đáp ứng đủ nhu cầu người dùng mong muốn xem hướng dẫn, chọn chế độ đấu với người hay với máy Giao diện game thân thiện với người dùng, dễ sử dụng, đơn giản giúp người dùng có trải nghiệm ứng dụng cách thoải máy, dễ chịu Giao diện ứng dụng Sau vào game giao diện thể bao gồm phần button “NGƯỜI”, “MÁY”, “HƯỚNG DẪN”, “THỐT” Hình Giao diện game Hình Giao diện nhấn THỐT Khi người dùng chọn chức NGƯỜI MÁY xuất giao diện game Hình Giao diện game chọn chơi với NGƯỜI với MÁY Trong giao diện có nút BẮT ĐẦU (xác nhận chọn bàn chơi), TẠO LẠI (để tạo lại trận cờ), TRỞ VỀ (trở lại giao diện chính) 3.5 QUY TRÌNH SỬ DỤNG Game Nim ứng dụng viết cho người sử dụng với mục đích giải trí Do bước quy trình khơng q phức tạp Đầu tiên người dùng vào game, chọn chức mong muốn, chơi game theo chế độ chọn thoát muốn Hình Quy trình chức game CHƯƠNG 4: KẾT LUẬN VÀ ĐÁNH GIÁ Xã hội ngày phát triển kéo theo áp lực công việc học tập ngày tăng theo để thích ứng với xã hội Vì thế, game nim làm vơ thích hợp phần giảm căng thẳng trình lao động học tập Niên luận nghiêm cứu trình bày kiến thức khái niệm trò chơi game Nim, định lý Bouton, giới thiệu biwise XOR để áp dụng vào cách chơi đưa hướng giải thỏa đáng cho vấn đề cách để chơi thắng game Game bao gồm chức chơi với người, với máy, xem hướng dẫn, Bên cạnh giao diện game thân thiện dễ sử dụng, giúp người dùng có trải nghiệm tốt Kết đạt chuyên môn, biết cách phân tích tốn, tìm hướng giải vấn đề đặt Nắm vững kiến thức cấu trúc liệu, giải thuật, tìm hiểu Java Swing, vẽ giao diện NetBean, Event Java Ngoài cải thiện kỹ đọc hiểu tài liệu, tìm phương pháp cho vấn đề cần giải quyết, biết thêm nhiều thủ thuật xây dựng giao diện thân thiện, đẹp mắt, tránh lỗi khơng đáng có làm ảnh hưởng tới trải nghiệm người dùng Kết đạt kỹ lập trình, viết code đơn giản, hình thành thói quen comment dịng code Giúp dễ dàng đọc hiểu, dễ sửa đổi, bảo trì nâng cấp Ưu điểm ứng dụng giao diện thiết kế để người dùng cảm thấy thích thú, không gây nhàm chán Tạo cảm giác trải nghiệm tốt Hạn chế ứng dụng không kết nối sở liệu nên ghi nhận lại lịch sử trận đấu Vì tương lai cải thiện lại để đáp ứng nhu cầu người dùng để phần mềm hoàn chỉnh chức lẫn hình thức 5 PHỤ LỤC 5.1 HƯỚNG DẪN SỬ DỤNG Truy cập vào ứng dụng Mở game NetBean thực thi để truy cập vào giao diện game Hình Giao diện Xem hướng dẫn Hình Nút HƯỚNG DẪN Sau nhấn vào xuất thơng báo để đưa hướng dẫn Hình Nội dung hướng dẫn Thốt ứng dụng Hình Nút hướng dẫn Khi nhấn vào thông báo yêu cầu xác nhận Hình 10 Yêu cầu xác nhận Chọn chế độ chơi Hình 11 Chọn chế độ chơi Khi lựa chọn chế độ chơi xuất giao diện bàn cờ Hình 12 Giao diện bàn cờ Cách chơi game Muốn xóa bỏ viên sỏi hàng cần đếm từ bên phải qua nhấn vào nút vị trí Ví dụ hàng muốn bỏ viên sỏi từ bên phải qua ấn vào viên sỏi số hai viên cuối xóa bỏ Hình 13 Sau bỏ viên sỏi cuối hàng Bắt đầu chơi game Hình 14 Nút bắt đầu Khi nhấn vào nút bắt đầu bắt đầu chơi Tạo lại trận đấu Hình 15 Nút tạo lại Do bàn cờ sinh ngẫu nhiên nên nút tạo lại giúp người chơi chủ động việc lựa chọn độ khó chơi Trở giao diện Hình 16 Nút trở lại Khi khơng cịn muốn chơi muốn lựa chọn chế độ chơi khác người dùng chọn nút trở lại để quay trở lại giao diện 6 TÀI LIỆU THAM KHẢO [1]Nguyễn Thị Tú Mi Lập trình Java Swing [2]Website: https://vnoi.info/wiki/algo/math/game-theory.md [3]Website: https://123docz.net/document/4145675-do-an-cau-truc-du-lieu-va-thuat-toan-tro-ch oi-nim.htm [4]Website: https://laptrinhcanban.com/java/java-co-ban-cho-nguoi-moi-bat-dau/toan-tu-trong-j ava/toan-tu-thao-tac-bit-trong-java/ [5]Website: https://stock.adobe.com/bg/search?k=nim ... tập Niên luận nghiêm cứu trình bày kiến thức khái niệm trò chơi game Nim, định lý Bouton, giới thiệu biwise XOR để áp dụng vào cách chơi đưa hướng giải thỏa đáng cho vấn đề cách để chơi thắng game. .. muốn Hình Quy trình chức game CHƯƠNG 4: KẾT LUẬN VÀ ĐÁNH GIÁ Xã hội ngày phát triển kéo theo áp lực công việc học tập ngày tăng theo để thích ứng với xã hội Vì thế, game nim làm vơ thích hợp phần... 3.5 QUY TRÌNH SỬ DỤNG Game Nim ứng dụng viết cho người sử dụng với mục đích giải trí Do bước quy trình không phức tạp Đầu tiên người dùng vào game, chọn chức mong muốn, chơi game theo chế độ chọn

Ngày đăng: 02/06/2022, 14:03

HÌNH ẢNH LIÊN QUAN

Hình 1 Lưu đồ giải thuật xử lý máy đánh - CT239 NIÊN LUẬN CƠ SỞ GAME NIM
Hình 1 Lưu đồ giải thuật xử lý máy đánh (Trang 12)
Hình 2 Giao diện chính của game. - CT239 NIÊN LUẬN CƠ SỞ GAME NIM
Hình 2 Giao diện chính của game (Trang 13)
Hình 3 Giao diện khi nhấn THOÁT - CT239 NIÊN LUẬN CƠ SỞ GAME NIM
Hình 3 Giao diện khi nhấn THOÁT (Trang 14)
Hình 4 Giao diện game khi chọn chơi với NGƯỜI hoặc với MÁY - CT239 NIÊN LUẬN CƠ SỞ GAME NIM
Hình 4 Giao diện game khi chọn chơi với NGƯỜI hoặc với MÁY (Trang 15)
Hình 5 Quy trình chức năng game - CT239 NIÊN LUẬN CƠ SỞ GAME NIM
Hình 5 Quy trình chức năng game (Trang 16)
Hình 6 Giao diện chính - CT239 NIÊN LUẬN CƠ SỞ GAME NIM
Hình 6 Giao diện chính (Trang 18)
Hình 10 Yêu cầu xác nhận - CT239 NIÊN LUẬN CƠ SỞ GAME NIM
Hình 10 Yêu cầu xác nhận (Trang 19)
Hình 13 Sau khi bỏ 2 viên sỏi cuối cùng ở hàng 1 - CT239 NIÊN LUẬN CƠ SỞ GAME NIM
Hình 13 Sau khi bỏ 2 viên sỏi cuối cùng ở hàng 1 (Trang 20)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w