Luận Văn Tốt Nghiệp Khoa Học Máy Tính Về Xây Dựng Trò Chơi Cờ Tướng

Khóa luận tốt nghiệp nghiên cứu Luận văn tốt nghiệp khoa học máy tính xây dựng trò chơi cờ tướng, vận dụng lý thuyết vào thực tế, đề xuất giải pháp cụ thể cho vấn đề kỹ thuật.

Chuyên ngành

Khoa học Máy tính

Người đăng

Ẩn danh

Thể loại

luận văn tốt nghiệp

2021

70
8
0

Phí lưu trữ

30 Point

Mục lục chi tiết

Lời cam đoan

Lời cảm ơn

Tóm tắt đề tài

Danh sách hình vẽ

Danh sách bảng

Thuật ngữ và từ viết tắt

1. CHƯƠNG 1: Giới thiệu đề tài

1.1. Tổng quan đề tài

1.2. Mục tiêu và phạm vi của đề tài

1.3. Ý nghĩa thực tiễn

1.4. Cấu trúc luận văn

2. CHƯƠNG 2: Cơ sở lý thuyết

2.1. Giới thiệu cờ tướng

2.1.1. Lịch sử cờ tướng

2.2. Quân cờ và luật di chuyển của các quân cờ

2.3. Giải thuật tìm kiếm Minimax

2.4. Giải thuật cắt tỉa Alpha-Beta

2.5. Hàm lượng giá

2.6. Thực tế tăng cường

2.7. Công cụ sử dụng

2.8. Các công trình liên quan

2.8.1. Các hướng khai thác chủ yếu

2.8.2. Phần mềm cờ tướng Intella

2.8.3. Phần mềm cờ tướng CCBridge

3. CHƯƠNG 3: Phân tích và thiết kế hệ thống

3.1. Phân tích độ phức tạp của cờ tướng

3.2. Hàm lượng giá

3.3. Giải thuật tìm kiếm Minimax

3.4. Thiết kế hệ thống

3.4.1. Đặc tả Usecase

4. CHƯƠNG 4: Hiện thực và kết quả

4.1. Trò chơi cờ tướng

4.1.1. Xây dựng đồ họa và luật chơi

4.1.2. Kết hợp cờ tướng và thực tế tăng cường

4.1.3. Khó khăn và giải pháp trong quá trình thực hiện

4.2. Tìm hiểu về một số công trình liên quan

4.3. Khó khăn và giải pháp trong quá trình hiện thực

5. CHƯƠNG 5: Tổng kết và kế hoạch phát triển

5.1. Kết quả đạt được

5.2. Kế hoạch phát triển

Tài liệu tham khảo

Tóm tắt

I. Giới thiệu đề tài

Trong bối cảnh hiện nay, nhu cầu giải trí của con người ngày càng đa dạng và phong phú, đặc biệt là trong lĩnh vực trò chơi điện tử. Trò chơi cờ tướng, một trong những trò chơi trí tuệ cổ điển, vẫn giữ được sức hút mạnh mẽ đối với nhiều người. Đề tài này nhằm mục đích xây dựng một trò chơi cờ tướng trên nền tảng di động, kết hợp giữa trí tuệ nhân tạo và công nghệ thực tế tăng cường. Qua đó, người chơi không chỉ được trải nghiệm những ván cờ căng thẳng mà còn được thưởng thức sự tương tác giữa thực tế và trò chơi thông qua điện thoại thông minh.

1.1 Tổng quan đề tài

Đề tài nghiên cứu về việc xây dựng trò chơi cờ tướng không chỉ nhằm giải trí mà còn để phát triển kỹ năng tư duy chiến lược cho người chơi. Sự kết hợp giữa cờ tướng cổ điển và công nghệ hiện đại như trí tuệ nhân tạo (AI) và thực tế tăng cường (AR) sẽ mang lại trải nghiệm mới mẻ, đáp ứng nhu cầu giải trí và học hỏi của người dùng. Việc sử dụng công nghệ AR sẽ tạo ra một không gian chơi cờ sống động, giúp người chơi cảm nhận được không khí của những ván cờ truyền thống ngay trong không gian sống của họ.

II. Cơ sở lý thuyết

Phần này sẽ trình bày về những kiến thức cơ bản liên quan đến cờ tướng, bao gồm lịch sử, quân cờ và luật chơi. Cờ tướng có nguồn gốc từ cờ Ấn Độ và đã phát triển thành một trò chơi độc đáo tại Trung Quốc. Mỗi quân cờ có cách di chuyển riêng biệt, và việc hiểu rõ luật chơi sẽ giúp người chơi có chiến lược hợp lý trong từng nước đi. Ngoài ra, các giải thuật trí tuệ nhân tạo như Minimax và Alpha-Beta sẽ được áp dụng để tạo ra đối thủ mạnh mẽ cho người chơi. Việc nắm vững các khái niệm này là điều kiện tiên quyết để xây dựng một trò chơi cờ tướng hiệu quả.

2.1 Giới thiệu cờ tướng

Cờ tướng không chỉ là một trò chơi mà còn là một nghệ thuật chiến lược, nơi người chơi phải vận dụng tư duy và khả năng phân tích để đưa ra những quyết định chính xác. Cờ tướng có thể được chơi trên nhiều nền tảng, từ bàn cờ truyền thống đến các ứng dụng trên điện thoại thông minh. Sự phổ biến của cờ tướng đã dẫn đến sự phát triển của nhiều phiên bản khác nhau, nhưng cốt lõi của trò chơi vẫn giữ nguyên. Việc nghiên cứu sâu về cờ tướng sẽ giúp tối ưu hóa quá trình phát triển trò chơi và nâng cao trải nghiệm người chơi.

III. Phân tích và thiết kế hệ thống

Trong giai đoạn này, việc phân tích độ phức tạp của trò chơi cờ tướng là rất quan trọng. Cờ tướng có một không gian tìm kiếm lớn với nhiều nước đi có thể xảy ra, do đó việc áp dụng các giải thuật tìm kiếm như Minimax và Alpha-Beta là cần thiết để tối ưu hóa quá trình ra quyết định của AI. Thiết kế hệ thống sẽ bao gồm việc xây dựng giao diện người dùng, lập trình các quy tắc của trò chơi và tích hợp công nghệ AR để tạo ra một trải nghiệm chơi cờ hấp dẫn. Sự kết hợp giữa các yếu tố này sẽ tạo ra một sản phẩm hoàn chỉnh, đáp ứng nhu cầu và mong đợi của người chơi.

3.1 Phân tích độ phức tạp của cờ tướng

Độ phức tạp của cờ tướng đến từ số lượng nước đi có thể xảy ra trong mỗi lượt chơi. Một nghiên cứu cho thấy số lượng vị trí có thể xảy ra trong một ván cờ tướng lên tới hàng triệu. Do đó, việc áp dụng các giải thuật tìm kiếm như Minimax giúp giảm thiểu không gian tìm kiếm và tăng khả năng ra quyết định của AI. Giải thuật Alpha-Beta cắt tỉa cũng được sử dụng để loại bỏ những nhánh không cần thiết trong quá trình tìm kiếm, từ đó tiết kiệm thời gian tính toán và tăng tốc độ phản hồi cho người chơi.

IV. Hiện thực và kết quả

Giai đoạn hiện thực hóa trò chơi cờ tướng đã diễn ra với nhiều bước quan trọng, từ việc xây dựng đồ họa, luật chơi cho đến việc tích hợp công nghệ AR. Việc xây dựng đồ họa bao gồm việc thiết kế hình ảnh cho quân cờ và bàn cờ, tạo ra một giao diện thân thiện với người dùng. Các giải thuật AI cũng được triển khai để tạo ra một đối thủ đáng gờm cho người chơi. Kết quả cuối cùng là một ứng dụng cờ tướng trên điện thoại di động, cho phép người dùng trải nghiệm trò chơi một cách mượt mà và thú vị.

4.1 Trò chơi cờ tướng

Trò chơi cờ tướng được xây dựng với giao diện trực quan và dễ sử dụng. Người chơi có thể dễ dàng thao tác và tương tác với trò chơi thông qua các nút bấm. Hệ thống AI được thiết kế để học hỏi từ các nước đi của người chơi, từ đó cải thiện khả năng chơi của mình. Việc tích hợp công nghệ AR không chỉ tạo ra một không gian chơi sống động mà còn giúp người chơi cảm nhận được sự gần gũi với trò chơi cổ điển. Kết quả đạt được không chỉ là một ứng dụng mà còn là một sản phẩm giải trí chất lượng cao.

V. Tổng kết và kế hoạch phát triển

Tổng kết lại, việc xây dựng trò chơi cờ tướng trên nền tảng di động đã mang lại nhiều giá trị cả về mặt thực tiễn lẫn khoa học. Sản phẩm không chỉ đáp ứng nhu cầu giải trí mà còn góp phần nâng cao kiến thức về cờ tướng cho người chơi. Kế hoạch phát triển trong tương lai sẽ bao gồm việc cải thiện trí tuệ nhân tạo, mở rộng các tính năng và nâng cao trải nghiệm người dùng. Việc tiếp tục nghiên cứu và phát triển sẽ giúp sản phẩm ngày càng hoàn thiện hơn.

5.1 Kết quả đạt được

Kết quả đạt được từ dự án này không chỉ là một ứng dụng cờ tướng mà còn là một nền tảng để phát triển các trò chơi trí tuệ khác trong tương lai. Người chơi sẽ có cơ hội trải nghiệm những ván cờ thú vị và học hỏi từ những nước đi của AI. Sự kết hợp giữa cờ tướng và công nghệ hiện đại đã mở ra một hướng đi mới cho ngành công nghiệp trò chơi điện tử, đồng thời góp phần bảo tồn và phát triển văn hóa chơi cờ truyền thống.

09/01/2025

Trích đoạn nội dung tài liệu

Chương 1: Giới thiệu và tổng quan đề tài. • Chương 2: Trình bày về cơ sở lý thuyết. • Chương 3: Phân tích và thiết kế hệ thống. Luận văn tốt nghiệp - HK202 - Năm học 2020 - 2021 Trang 12/66 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính • Chương 4: Hiện thực và kết quả • Chương 5: Tổng kết những kết quả đạt được, những hạn chế và rút kinh nghiệm.

Luận văn tốt nghiệp - HK202 - Năm học 2020 - 2021 Trang 13/66 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính 2 Cơ sở lý thuyết 2.1 Giới thiệu cờ tướng 2.1 Lịch sử cờ tướng Hiện nay, cờ tướng phổ biến nhất tại một số nước như: Trung Quốc, Việt Nam, ĐàiLoan, Singapore và nằm cùng thể loại với cờ vua, shogi, janggi. Trò chơi mô phỏng cuộc chiến giữa hai quốc gia, với mục tiêu là bắt được Tướng đối phương hoặc bao vây quân Tướng. Đầu tiên, chúng ta sẽ nói lịch sử hình thành nên cờ tướng. Cờ Ấn Độ du nhập vào Trung Quốc và trở thành tiền thân cờ tướng cũng như cờ Shogi của xứ Nhật Bản và khi cờ Trung Quốc du nhập vào Triều Tiên thì trở thành cờ Janggi.

Trong khi đó, cờ Ấn Độ du nhập sang Tây phương trở thành cờ vua. Và cuối cùng, người Trung Quốc chuyển thành cờ tướng vào thời kỳ nhà Tống. Nhà sử học người Đức Peter Banaschak đã chỉ ra rằng cờ tướng Baoying, không có "Pháo" trong "Xuanguailu" do đó chưa có Pháo của Niu Sengru, ngài tể tướng của nhà Đường, là nguồn gốc thực sự của cờ tướng hiện đại tức là thời Đường đã manh nha trò chơi cờ tướng hiện đại hoàn toàn xuất hiện bởi người Trung Hoa vào thời kỳ nhà Đường. Tiếp theo, chúng ta đề cập đến bàn cờ.

Về bàn cờ, có dạng là hình chữ nhật do 9 đường dọc và 10 đường ngang cắt nhau vuông góc tại điểm 90 tạo thành. Ở giữa bàn cờ có một khoảng trống được gọi là sông,chia bàn cờ thành hai phần đối xứng bằng nhau. Mỗi bên có một cung Tướng hình vuông do 4 ô hợp thành tại các đường dọc 4, 5, 6 kể từ đường ngang cuối của mỗi bên, trong 4 ô này có vẽ hai đường chéo. Mỗi ván cờ lúc bắt đầu phải có 32 quân cờ chia đều cho mỗi bên gồm 16 quân trắng và 16 quân đen, gồm 7 loại quân.Tuy tên quân cờ của mỗi bên có thể viết khác nhau (ký hiệu theo chữ Hán) nhưng giá trị và cách đi quân của chúng giống nhau hoàn toàn.2 Quân cờ và luật di chuyển của các quân cờ Trong bàn cờ, mỗi quân cờ có một cách di chuyển khác nhau, chúng được di chuyển theo luật như sau: • Tướng: Đi từng ô một, đi ngang hoặc đi dọc.

Tướng luôn trong phạm vi "cung" và không được ra ngoài. "Cung" tức là hình vuông 3x3 được đánh dấu bởi lằng chéo hình chữ X. Luận văn tốt nghiệp - HK202 - Năm học 2020 - 2021 Trang 14/66 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính • Sĩ: Đi chéo 1 ô mỗi nước và phải luôn trong cung. Như vậy quân Sĩ có 5 vị trí hợp lệ và có chức năng bảo vệ tướng.

• Tượng: Đi chéo 2 ô mỗi nước và không được vượt qua sông. Như vậy, trên bàn cờ, quân Tượng có 7 vị trí có thể đi được. • Xe: Đi ngang hoặc dọc trên bàn cờ miễn là đừng bị quân khác cản đường từ điểm đi đến điểm đến. • Pháo: Đi ngang hoặc dọc giống như quân Xe.

Điểm khác biệt muốn ăn quân phải nhảy qua đúng 1 quân nào đó. Khi không ăn, tất cả những điểm từ điểm đi đến điểm đến không có quân nào cản. • Mã: Đi ngang 2 ô và dọc 1 ô (hay dọc 2 ô và ngang 1 ô). Nếu có quân cờ nào đó nằm ngay bên cạnh thì Mã bị cản, không được đi đường đó.

• Tốt: Đi 1 ô mỗi nước. Nếu chưa qua sông, nó chỉ được tiến. Nếu qua sông thì được đi ngang hay tiến, không được lùi. Quân cờ Ký hiệu Số lượng Tướng 1 Sĩ 2 Tượng 2 Xe 2 Pháo 2 Mã 2 Tốt 5 Bảng 2.1: Ký hiệu và số lượng quân cờ mỗi bên Ngoài ra còn tồn tại những luật chơi khác trong trò chơi cờ tướng: • Lộ mặt tướng: Hai quân Tướng không được đối mặt nhau trên cùng một cột.

Luôn luôn phải có một quân nào đó nằm giữa để che mặt. Nước đi để hai tướng đối mặt nhau là không hợp lệ. • An toàn của Tướng: Sau một nước đi, Tướng của bên đi không được để đối phương ăn ngay trong nước kế tiếp. Những nước để Tướng không an toàn là không hợp lệ.

Luận văn tốt nghiệp - HK202 - Năm học 2020 - 2021 Trang 15/66 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính Ván đấu sẽ được kết thúc nếu xảy ra 1 trong những trường hợp sau đây: • Chiếu bí: Nếu một bên chiếu tướng, và đối thủ không có khả năng đỡ, bên chiếu tướng thắng. • Hết nước đi: Nếu bên tới phiên không có nước hợp để đi, bên đó thua. • Sau 120 nước đi của cả 2 bên, mà không có quân cờ nào bị ăn thì hòa nhau. • Cấm chiếu tướng liên tục 10 lần.

• Ăn quân: Khi quân di chuyển đến 1 vị trí được giữ bởi quân đối phương, quân đối phương bị ăn và bị lấy ra khỏi bàn cờ. • Chống tướng: Hai quân Tướng trên bàn cờ không được nằm cùng nhau trên một cột dọc mà không có quân cản nào ở giữa. Nước đi để 2 quân Tướng trong vị trí chống tướng là không hợp lệ.2 Cây tìm kiếm Trong lĩnh vực khoa học máy tính, cây tìm kiếm là cây cấu trúc dữ liệu dạng cây được sử dụng để định vị các khóa cụ thể từ bên trong một tập hợp. Để cây hoạt động như cây tìm kiếm, khóa cho mỗi nút phải lớn hơn bất kỳ khóa nào trong cây con bên trái và nhỏ hơn bất kỳ khóa nào trong cây con bên phải.

Ưu điểm của cây tìm kiếm là hiệu quả về thời gian tìm kiếm của chúng do cây được cân bằng hợp lý, nghĩa là lá ở hai đầu có độ sâu tương đương. Các cấu trúc cây tìm kiếm khác nhau tồn tại, một số trong đó chép chèn và xóa các phần tử hiệu quả, mà các hoạt động đó duy trì sự cân bằng của cây. Cây tìm kiếm được sử dụng trong trò chơi cờ tướng cho việc lưu trữ trạng thái bàn cờ. Mỗi một nút trong cây là một trạng thái bàn cờ và các cạnh của nó tương ứng với nước đi.

Số lượng các trạng thái có thể sinh ra từ một trạng thái là số con của nút đó trong cây. Khi bắt đầu vào là trạng thái bàn cờ, trò chơi sẽ tính toán các nước đi hợp lệ. Kết hợp với với trạng thái bàn cờ và nước đi hợp lệ sẽ tạo ra được trạng thái tiếp theo cho bàn cờ. Thực hiện tương tự như vậy ta có thể xây dựng được cây tìm kiếm từ đầu vào là trạng thái bàn cờ.

Luận văn tốt nghiệp - HK202 - Năm học 2020 - 2021 Trang 16/66 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính Hình 2.3 Giải thuật tìm kiếm Minimax Minimax là một quy tắc quyết định được sử dụng trong AI (Artificial Intelli- gence), lý thuyết quyết định (decision theory), lý thuyết trò chơi (game theory), thống kê,. cho việc giảm thiểu tổn thất có thể xảy ra đối với trường hợp xấu nhất. Khi xử lý, nó được gọi là ’maximin’, để tối đa hóa mức tối thiểu. Ban đầu được xây dựng cho lý thuyết trò chơi tổng bằng 0 của n người chơi, bao gồm cả trường hợp người chơi thực hiện các nước đi thay thế và những trường hợp họ thực hiện các bước đi đồng thời.

Nó cũng được mở rộng sang các trò chơi phức tạp hơn và ra quyết định chung khi không chắc chắn. Một giải thuật Minimax là một thuật toán đệ quy cho việc lựa chọn các bước đi kế tiếp trong trò chơi. Mỗi trạng thái hay vị trí của trò chơi đều được gán giá trị. Dựa vào hàm tính giá trị vị trí ta sẽ tính toán được giá trị này và biết được độ hiệu quả nếu đạt được vị trí này.

Người chơi sau đó có thể thực hiện các nước đi để tối đa giá trị tối thiểu của vị trí kết quả từ các nước đi có thể của đối thủ. 1 function minimax(node, depth, maximizingPlayer) is Luận văn tốt nghiệp - HK202 - Năm học 2020 - 2021 Trang 17/66 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính 2 if depth = 0 or node is a terminal node then 3 return the heuristic value of node 4 if maximizingPlayer then 5 value := -infty 6 for each child of node do 7 value := max(value, minimax(child, depth - 1, FALSE)) 8 return value 9 else (* minimizing player *) 10 value := +infty 11 for each child of node do 12 value := min(value, minimax(child, minimax(child, depth - 1, TRUE)) 13 return value 2.4 Giải thuật cắt tỉa Alpha-Beta Cắt tỉa Alpha-Beta là một giải thuật tìm kiếm nhầm giảm số lượng các nút được đánh giá bởi giải thuật Minimax trong cây tìm kiếm của nó. Nó là một giải thuật tìm kiếm đối nghịch được sử dụng phổ cho các máy trò chơi của hai người chơi (Tic-tac-toe, cờ vây, cờ vua. Nó ngừng đánh giá một nước đi khi ít nhất một khả năng được tìm thấy chứng tỏ nước đi đó tệ hơn một nước đi đã được kiểm tra trước đó.

Những nước đi như vậy không cần phải đánh giá thêm. Khi áp dụng cho một cây Minimax tiêu chuẩn, nó sẽ tra lại cùng một nước đi như Minimax sẽ làm nhưng cắt bỏ những nhánh không ảnh hưởng đến quyết định cuối cùng. 1 function alphabeta(node, depth, alpha, beta, maximizingPlayer) is 2 if depth = 0 or node is a terminal node then 3 return the heuristic value of node 4 if maximizingPlayer then 5 value := -infty 6 for each child of node do 7 value := max(value, alphabeta(child, depth - 1, alpha, beta, FALSE)) 8 alpha := max(alpha, value) 9 if alpha >= beta then 10 break (* beta cutoff *) 11 return value 12 else 13 value := +infty 14 for each child of node do 15 value := min(value, alphabeta(child, depth - 1, alpha, beta, Luận văn tốt nghiệp - HK202 - Năm học 2020 - 2021 Trang 18/66 Trường Đại Học Bách Khoa Tp.Hồ Chí Minh Khoa Khoa Học và Kỹ Thuật Máy Tính TRUE)) 16 beta := min(beta, value) 17 if beta <= alpha then 18 break (* a cutoff *) 19 return value 2.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Bài luận văn tốt nghiệp mang tên Luận Văn Tốt Nghiệp Khoa Học Máy Tính Về Xây Dựng Trò Chơi Cờ Tướng, do Chung Minh Đệ thực hiện dưới sự hướng dẫn của Ths. Vương Bá Thịnh tại Đại học Quốc gia TP Hồ Chí Minh, đã được hoàn thành vào năm 2021. Bài viết tập trung vào việc phát triển một trò chơi cờ tướng, không chỉ nhằm mục đích giải trí mà còn để nghiên cứu các thuật toán và kỹ thuật lập trình trong lĩnh vực khoa học máy tính. Bằng cách áp dụng các phương pháp lập trình hiện đại, luận văn này mang đến cho người đọc cái nhìn sâu sắc về cách thức xây dựng một trò chơi trí tuệ, cũng như những thách thức trong việc thiết kế và triển khai.

Để mở rộng thêm kiến thức về lĩnh vực này, bạn có thể tham khảo một số tài liệu liên quan như Xây dựng máy tìm kiếm tác vụ dựa trên tài liệu đặc tả API, nơi mà bạn sẽ tìm thấy cách áp dụng công nghệ thông tin trong việc phát triển ứng dụng. Ngoài ra, Nghiên Cứu Thuật Toán Trao Đổi Khóa Dựa Vào Tính Toán Cặp Tate Trên Đường Cong Elliptic cũng là một tài liệu thú vị, cung cấp cái nhìn về thuật toán trong khoa học máy tính. Cuối cùng, bạn có thể tìm hiểu thêm về Nghiên cứu thuật toán và ứng dụng công nghệ định vị vệ tinh GNSS tại Việt Nam, tài liệu này sẽ giúp bạn hiểu rõ hơn về ứng dụng công nghệ trong các lĩnh vực khác nhau. Những tài liệu này sẽ giúp bạn mở rộng kiến thức và cái nhìn tổng quát hơn về các ứng dụng của khoa học máy tính trong đời sống.