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

Báo cáo bài tập lớn học phần trí tuệ nhân tạo xây dựng trò chơi cờ tướng

27 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Xây Dựng Trò Chơi Cờ Tướng
Tác giả Trương Hoàng Quý-90773, Khổng Hữu Khang-91409, Trương Nhật Minh-90594
Người hướng dẫn Nguyễn Duy Trường Giang
Trường học Trường Đại Học Hàng Hải Việt Nam
Chuyên ngành Trí Tuệ Nhân Tạo
Thể loại báo cáo
Định dạng
Số trang 27
Dung lượng 1,33 MB

Nội dung

Do đó, việcxây dựng một hệ thống AI có thể chơi Cờ Tướng không chỉ là một thách thức tronglĩnh vực trí tuệ nhân tạo mà còn góp phần thúc đẩy sự hiểu biết sâu sắc về các thuậttoán như Min

Trang 1

TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM VIỆN ĐÀO TẠO CHẤT LƯỢNG CAO

BÁO CÁO BÀI TẬP LỚN

HỌC PHẦN : TRÍ TUỆ NHÂN TẠO XÂY DỰNG TRÒ CHƠI CỜ TƯỚNG

NHÓM 13

Trương Hoàng Quý-90773Khổng Hữu Khang-91409Trương Nhật Minh-90594

GIÁO VIÊN HƯỚNG DẪN: NGUYỄN DUY TRƯỜNG GIANG

Trang 2

MỤC LỤC

CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI 1

1 Lý do chọn đề tài 1

1.2 Mục tiêu nghiên cứu 1

1.3 Phạm vi nghiên cứu 2

CHƯƠNG II: CƠ SỞ LÝ THUYẾT 4

2.1 Nguyên tắc trò chơi Cờ Tướng 4

2.2 Hàm lượng giá bàn cờ 5

2.3 Thuật toán Minimax 6

2.4 Thư viện sử dụng 7

CHƯƠNG III: PHƯƠNG PHÁP NGHIÊN CỨU 9

3.1 Quy trình thực hiện 9

3.2 Mô hình hệ thống 10

CHƯƠNG IV: TRIỂN KHAI HỆ THỐNG 12

4.1 Giao diện bàn cờ 12

4.2 Hàm lượng giá bàn cờ 14

4.3 Thuật toán Minimax 16

CHƯƠNG V: KẾT QUẢ VÀ ĐÁNH GIÁ 18

5.1 Kết quả thực nghiệm 18

5.2 Đánh giá hệ thống 19

LỜI CẢM ƠN 21

TÀI LIỆU KHAM KHẢO 22

Trang 3

CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI

1 Lý do chọn đề tài

Trong bối cảnh phát triển mạnh mẽ của công nghệ trí tuệ nhân tạo (AI), việcứng dụng các thuật toán AI vào các trò chơi trí tuệ như Cờ Tướng đã thu hút sự quantâm của nhiều nhà nghiên cứu và nhà phát triển Cờ Tướng, với lịch sử lâu đời và sựphức tạp về chiến thuật, là một trò chơi mang tính đối kháng cao, đòi hỏi người chơikhông chỉ có khả năng tính toán mà còn phải đưa ra các chiến lược hợp lý Do đó, việcxây dựng một hệ thống AI có thể chơi Cờ Tướng không chỉ là một thách thức tronglĩnh vực trí tuệ nhân tạo mà còn góp phần thúc đẩy sự hiểu biết sâu sắc về các thuậttoán như Minimax và lượng giá trạng thái bàn cờ

Mục tiêu của đề tài này là thiết kế và triển khai một hệ thống AI chơi Cờ Tướngdựa trên thuật toán Minimax, kết hợp với hàm lượng giá bàn cờ để tối ưu hóa các nước

đi Đây là cơ sở để tìm hiểu cách thức AI có thể mô phỏng tư duy chiến thuật của conngười và nâng cao khả năng chơi cờ của chính người dùng

1.2 Mục tiêu nghiên cứu

Mục tiêu chính của nghiên cứu này là xây dựng một hệ thống AI có khả năngchơi Cờ Tướng thông minh bằng cách áp dụng thuật toán Minimax, kết hợp với cáchàm lượng giá bàn cờ để đánh giá trạng thái và đưa ra quyết định tốt nhất Cụ thể:

 Phát triển hệ thống AI chơi Cờ Tướng:

o Triển khai AI có khả năng phân tích trạng thái bàn cờ, đưa ra nước đi tối

ưu và có thể cạnh tranh với người chơi ở mức độ trung bình hoặc cao

o Tích hợp giao diện bàn cờ trực quan, cho phép người chơi tương tác với

AI một cách dễ dàng

 Ứng dụng thuật toán Minimax:

Trang 4

o Sử dụng thuật toán Minimax để AI có thể dự đoán nhiều bước đi, cânnhắc các chiến lược tấn công và phòng thủ dựa trên điểm lượng giá bàncờ.

o Đánh giá hiệu quả của thuật toán Minimax trong việc đưa ra quyết địnhtrong các tình huống phức tạp của Cờ Tướng

 Phát triển hàm lượng giá bàn cờ:

o Thiết kế hàm lượng giá để AI đánh giá được lợi thế dựa trên giá trị quân

cờ, vị trí và trạng thái của bàn cờ

o Tối ưu hóa hàm lượng giá để AI không chỉ ưu tiên ăn quân mà còn cókhả năng tìm kiếm chiến thắng thông qua chiến lược chiếu tướng

 Nghiên cứu và đánh giá hệ thống:

o Đánh giá hiệu suất và hiệu quả của hệ thống AI thông qua các trận đấuthử nghiệm

o Phân tích các điểm mạnh và hạn chế của hệ thống, từ đó đề xuất cáchướng cải tiến

1.3 Phạm vi nghiên cứu

Nghiên cứu này tập trung vào việc phát triển hệ thống AI chơi Cờ Tướng, vớiphạm vi cụ thể như sau:

 Lĩnh vực nghiên cứu:

o Ứng dụng thuật toán trí tuệ nhân tạo (AI) trong trò chơi Cờ Tướng

o Áp dụng thuật toán Minimax để giải quyết bài toán ra quyết định trongcác trò chơi đối kháng hai người

Trang 5

 Hạn chế:

o Không tích hợp các thuật toán tối ưu hiệu suất như Alpha-Beta Pruning

o Hệ thống chỉ tập trung vào các chiến thuật cơ bản và không phát triểncác chiến lược phức tạp như dụ quân, phá thế phòng thủ

o Độ sâu dự đoán của thuật toán Minimax giới hạn ở mức trung bình (3-5lượt đi), chưa tối ưu cho các tình huống cực kỳ phức tạp

Trang 6

CHƯƠNG II: CƠ SỞ LÝ THUYẾT

2.1 Nguyên tắc trò chơi Cờ Tướng

1 Giới thiệu:

 Cờ Tướng là một trò chơi trí tuệ đối kháng dành cho hai người, có nguồn gốc từTrung Quốc, được chơi trên bàn cờ 9x10 với các quân cờ có chức năng khácnhau

 Mục tiêu chính của trò chơi là chiếu tướng đối thủ, tức là đưa quân Tướng củađối thủ vào trạng thái không thể tránh khỏi việc bị bắt

o Tốt: Di chuyển 1 ô thẳng, chỉ được đi ngang khi qua sông

o Xe: Di chuyển ngang hoặc dọc không giới hạn số ô, miễn là không bị cản

o Pháo: Di chuyển giống Xe, nhưng chỉ ăn được quân khi có một quân cờchặn giữa

o Mã: Di chuyển theo hình chữ L (2 ô dọc và 1 ô ngang hoặc ngược lại), bịcản nếu ô ngay cạnh bị chặn

o Tượng: Di chuyển chéo 2 ô, không qua sông và bị cản nếu ô giữa bị chặn

o Sĩ: Di chuyển chéo 1 ô, chỉ hoạt động trong cung

o Tướng: Di chuyển 1 ô ngang hoặc dọc, chỉ hoạt động trong cung

 Luật chơi:

o Hai người chơi thay phiên nhau di chuyển quân cờ của mình

o Quân cờ không thể di chuyển vào ô đã có quân cùng màu

Trang 7

o Khi quân Tướng bị chiếu (bị tấn công mà không thể di chuyển để tránh),trận đấu kết thúc.

3 Chiến thuật cơ bản:

 Tấn công: Tập trung vào việc chiếu tướng hoặc ăn quân đối thủ để tạo lợi thế

 Phòng thủ: Bảo vệ quân Tướng và giữ thế trận cân bằng

 Kiểm soát bàn cờ: Đưa quân cờ vào các vị trí chiến lược để gây áp lực lên đốithủ

2.2 Hàm lượng giá bàn cờ

1 Khái niệm hàm lượng giá:

 Hàm lượng giá là một hàm số được sử dụng để tính toán mức độ lợi thế hoặcbất lợi của một trạng thái bàn cờ tại một thời điểm cụ thể

 Điểm lượng giá càng cao thì trạng thái bàn cờ càng có lợi cho AI, và ngược lại

2 Nguyên tắc xây dựng hàm lượng giá:

 Dựa trên giá trị quân cờ:

Mỗi quân cờ được gán một giá trị dựa trên tầm quan trọng của nó:

 Dựa trên trạng thái bàn cờ:

o Vị trí của quân cờ (ở trung tâm hay gần biên)

o Sự an toàn của quân cờ (được bảo vệ hay bị đe dọa)

3 Cách tính hàm lượng giá:

 Tổng điểm lượng giá = (Tổng điểm quân cờ của AI) - (Tổng điểm quân cờ củađối thủ)

Trang 8

 Ví dụ: Nếu AI có một Xe (900 điểm) và một Tốt (100 điểm), còn đối thủ cómột Pháo (450 điểm):

Tổng điểm = (900 + 100) - 450 = 550 điểm

Trạng thái bàn cờ có lợi cho AI

4 Ý nghĩa của hàm lượng giá:

 Giúp AI đánh giá được lợi thế hoặc bất lợi trong từng trạng thái

 Là cơ sở để thuật toán Minimax so sánh các trạng thái và chọn nước đi tốt nhất

2.3 Thuật toán Minimax

1 Khái niệm thuật toán Minimax:

 Thuật toán Minimax là một kỹ thuật tìm kiếm được sử dụng rộng rãi trong cáctrò chơi đối kháng hai người, như cờ vua, cờ tướng, hoặc cờ caro

 Mục tiêu của thuật toán là tối ưu hóa nước đi của người chơi chính(Maximizing Player) trong khi giảm thiểu lợi thế của đối thủ (MinimizingPlayer)

 Minimax hoạt động bằng cách giả lập tất cả các nước đi có thể từ một trạng tháiban đầu và tính toán điểm số lượng giá cho từng trạng thái

2 Quy trình hoạt động:

 Lượt của Maximizing Player (AI):

o Chọn nước đi với điểm số lượng giá cao nhất để tối đa hóa lợi ích

 Lượt của Minimizing Player (đối thủ):

Trang 9

o Giả định đối thủ sẽ chọn nước đi làm giảm thiểu điểm số củaMaximizing Player.

 Quá trình này được thực hiện đệ quy cho đến khi đạt độ sâu xác định (depth)hoặc đạt trạng thái kết thúc trò chơi (chiếu tướng hoặc hòa)

3 Đặc điểm:

 Ưu điểm:

o Đảm bảo AI chọn nước đi tối ưu nhất trong phạm vi tính toán

o Tính toán toàn diện tất cả các trạng thái có thể xảy ra, đảm bảo nước đihợp lý

 Hạn chế:

o Yêu cầu nhiều tài nguyên tính toán, đặc biệt khi độ sâu dự đoán tăng

o Không tự động tối ưu hiệu suất, cần kết hợp thêm các thuật toán khácnhư Alpha-Beta Pruning

4 Sơ đồ hoạt động của thuật toán Minimax:

 Mỗi node trong cây biểu diễn một trạng thái của bàn cờ

 Từ một trạng thái ban đầu (root), thuật toán giả lập tất cả các nước đi của AI vàđối thủ, tính toán điểm số cho từng nhánh, rồi chọn nhánh có lợi nhất

 Ứng dụng trong đề tài:

Xiangqi.js được sử dụng để:

Trang 10

o Sinh nước đi hợp lệ: Xác định danh sách tất cả các nước đi có thể từtrạng thái hiện tại.

o Kiểm tra trạng thái trận đấu: Xác định liệu trận đấu đã kết thúc (chiếutướng, chiếu bí, hòa) hay chưa

o Xử lý logic trò chơi: Giúp thực hiện các nước đi, hoàn tác nước đi(undo), và cập nhật trạng thái bàn cờ

 Ví dụ chức năng chính:

o xiangqi.moves(): Trả về danh sách các nước đi hợp lệ

o xiangqi.move(): Thực hiện một nước đi

o xiangqi.undo(): Hoàn tác nước đi

o xiangqi.in_checkmate(): Kiểm tra xem có chiếu bí không

2.4.1 Xiangqiboard.js

 Giới thiệu:

o Xiangqiboard.js là một thư viện JavaScript dùng để tạo và hiển thị bàn

cờ Cờ Tướng dưới dạng giao diện trực quan

o Thư viện này cho phép người dùng tương tác với bàn cờ, chẳng hạn nhưkéo thả quân cờ hoặc hiển thị trạng thái bàn cờ

 Ứng dụng trong đề tài:

Xiangqiboard.js được sử dụng để:

o Hiển thị bàn cờ: Tạo bàn cờ Cờ Tướng với các quân cờ đặt đúng vị trí

o Hỗ trợ tương tác: Cho phép người chơi kéo thả quân cờ để thực hiệnnước đi

o Cập nhật trạng thái bàn cờ: Đồng bộ giao diện bàn cờ với trạng thái bàn

cờ logic được quản lý bởi Xiangqi.js

 Ví dụ chức năng chính:

o Xiangqiboard(): Khởi tạo bàn cờ

o board.position(): Cập nhật vị trí quân cờ trên giao diện

o onDrop: Xử lý sự kiện khi người chơi kéo thả quân cờ

Trang 11

2.4.3 Mối liên hệ giữa Xiangqi.js và Xiangqiboard.js

 Xiangqi.js xử lý logic của trò chơi, bao gồm:

Trang 12

CHƯƠNG III: PHƯƠNG PHÁP NGHIÊN CỨU

3.1 Quy trình thực hiện

 Phân tích yêu cầu:

o Xác định các chức năng cần thiết cho hệ thống, bao gồm:

 Sinh nước đi hợp lệ

 Lượng giá trạng thái bàn cờ

 Ra quyết định nước đi tối ưu

 Giao diện bàn cờ để người chơi tương tác

o Nghiên cứu các thuật toán thích hợp, đặc biệt là thuật toán Minimax

 Tìm hiểu các thư viện hỗ trợ:

o Xiangqi.js: Thư viện xử lý logic trò chơi, giúp kiểm tra nước đi hợp lệ,trạng thái bàn cờ và điều kiện kết thúc trận đấu

o Xiangqiboard.js: Thư viện hiển thị bàn cờ và hỗ trợ tương tác kéo thảquân cờ

 Thiết kế hệ thống:

o Phân chia các thành phần chính của hệ thống:

 Giao diện bàn cờ: Hiển thị trạng thái và xử lý nước đi của ngườichơi

 Logic AI: Sinh nước đi và quyết định nước đi của AI bằng thuậttoán Minimax

 Hàm lượng giá: Đánh giá trạng thái bàn cờ dựa trên giá trị quân

cờ và chiến lược chiếu tướng

o Thiết kế giao diện trực quan, dễ sử dụng

 Triển khai hệ thống:

o Sử dụng thư viện Xiangqi.js để sinh nước đi hợp lệ và kiểm tra trạng tháitrận đấu

o Tích hợp thuật toán Minimax để ra quyết định nước đi tối ưu

o Xây dựng hàm lượng giá để AI đánh giá trạng thái bàn cờ

Trang 13

o Hiển thị bàn cờ bằng thư viện Xiangqiboard.js, cho phép người chơi kéothả quân cờ.

 Thử nghiệm và đánh giá:

o Thực hiện nhiều trận đấu thử nghiệm giữa AI và người chơi để đánh giá:

o Độ chính xác của các nước đi

o Hiệu suất của hệ thống (tốc độ xử lý và phản hồi)

o Trình độ chơi của AI ở các độ sâu khác nhau

o Ghi nhận các hạn chế và đề xuất cải tiến

3.2 Mô hình hệ thống

1 Giao diện người dùng (UI):

 Thành phần:

o Bàn cờ hiển thị: Được tạo bằng thư viện Xiangqiboard.js

o Quân cờ: Cho phép kéo thả để thực hiện nước đi

o Thông báo trạng thái: Hiển thị thông báo như "Tới lượt", "Chiếu tướng",

"Kết thúc trận đấu"

 Chức năng:

o Cho phép người chơi thực hiện nước đi hợp lệ

o Đồng bộ trạng thái giao diện với logic trò chơi

o Hiển thị trạng thái bàn cờ sau mỗi lượt

2 Logic trò chơi:

 Thành phần:

o Được triển khai dựa trên thư viện Xiangqi.js

o Xử lý các quy tắc trò chơi Cờ Tướng:

o Kiểm tra nước đi hợp lệ

o Thực hiện và hoàn tác nước đi

o Kiểm tra trạng thái trận đấu (chiếu tướng, hòa, hoặc kết thúc)

 Chức năng:

o Sinh danh sách các nước đi hợp lệ

Trang 14

o Kiểm tra điều kiện kết thúc trận đấu.

3 Thuật toán AI:

 Thành phần:

o Thuật toán Minimax:

 Giả lập các nước đi của cả AI và đối thủ đến một độ sâu xác định

 Đưa ra nước đi tối ưu dựa trên điểm lượng giá của trạng thái bàncờ

o Hàm lượng giá:

 Đánh giá trạng thái bàn cờ dựa trên giá trị quân cờ và chiến lượcchiếu tướng

 Chức năng:

o Tìm nước đi tốt nhất cho AI

o Dự đoán các nước đi có lợi thế cho đối thủ và tối ưu hóa chiến thuật củaAI

4 Mô hình luồng hoạt động của hệ thống:

 Người chơi thực hiện nước đi:

o Người chơi kéo thả quân cờ trên bàn cờ

o Giao diện gửi thông tin nước đi đến logic trò chơi

 Kiểm tra nước đi hợp lệ:

o Logic trò chơi (Xiangqi.js) xác định xem nước đi có hợp lệ hay không

o Nếu nước đi không hợp lệ, quân cờ được trả về vị trí cũ

 Cập nhật trạng thái bàn cờ:

o Logic trò chơi cập nhật trạng thái bàn cờ sau nước đi của người chơi

o Kiểm tra trạng thái trận đấu (chiếu tướng, chiếu bí, hoặc hòa)

 AI thực hiện nước đi:

o Thuật toán Minimax được gọi để tìm nước đi tối ưu cho AI

o Giao diện bàn cờ cập nhật trạng thái mới sau nước đi của AI

 Hiển thị trạng thái:

Trang 15

o Giao diện hiển thị thông báo về trạng thái trận đấu, ví dụ: "Chiếu tướng",

"Hòa", hoặc "Tới lượt người chơi"

Trang 16

CHƯƠNG IV: TRIỂN KHAI HỆ THỐNG

4.1 Giao diện bàn cờ

1 Mô tả giao diện bàn cờ:

 Giao diện bàn cờ được xây dựng bằng thư viện Xiangqiboard.js, giúp hiển thịbàn cờ và các quân cờ theo đúng quy tắc Cờ Tướng

 Giao diện cho phép người chơi kéo thả quân cờ, từ đó thực hiện nước đi

2 Chức năng chính của giao diện bàn cờ:

 Hiển thị bàn cờ:

o Tạo bàn cờ với các quân cờ đặt đúng vị trí ban đầu

o Cập nhật trạng thái bàn cờ sau mỗi nước đi của người chơi hoặc AI

 Hỗ trợ tương tác:

o Cho phép người chơi kéo thả quân cờ để thực hiện nước đi

o Tự động kiểm tra tính hợp lệ của nước đi thông qua logic trò chơi (sửdụng Xiangqi.js)

 Thông báo trạng thái:

o Hiển thị các thông báo như "Tới lượt người chơi", "Chiếu tướng", "Kếtthúc trận đấu"

3 Triển khai giao diện:

Giao diện được cấu hình thông qua thư viện Xiangqiboard.js, với mã như sau:// Cấu hình bàn cờ

const config = {

boardTheme: ' /docs/img/xiangqiboards/wikimedia/xiangqiboard.svg', // Ảnh bàncờ

pieceTheme: ' /docs/img/xiangqipieces/wikimedia/{piece}.svg', // Ảnh quân cờ orientation: 'red', // Hướng bàn cờ (Đỏ ở dưới)

position: 'start', // Trạng thái ban đầu

showNotation: true, // Hiển thị tọa độ

Trang 17

draggable: true, // Cho phép kéo thả quân cờ

onDrop: function (source, target) {

const move = xiangqi.move({ from: source, to: target }); // Xử lý nước đi củangười chơi

if (move === null) return 'snapback'; // Nếu không hợp lệ, trả quân về vị trí cũ updateGameStatus(); // Cập nhật trạng thái

board.position(xiangqi.fen()); // Hiển thị bàn cờ mới

if (!updateGameStatus() && xiangqi.turn() === 'b') { // Nếu chưa kết thúc và đếnlượt AI

setTimeout(makeAIMove, 500); // AI thực hiện nước đi sau 500ms

 Giao diện bàn cờ trực quan, hiển thị trạng thái bàn cờ rõ ràng

 Người chơi có thể dễ dàng kéo thả quân cờ để thực hiện nước đi

Trang 18

4.2 Hàm lượng giá bàn cờ

1 Vai trò của hàm lượng giá:

 Hàm lượng giá giúp AI đánh giá mức độ lợi thế hoặc bất lợi của từng trạng tháibàn cờ

 Đây là cơ sở để thuật toán Minimax so sánh và lựa chọn trạng thái tốt nhất

2 Cách thiết kế hàm lượng giá:

 Giá trị của mỗi trạng thái bàn cờ được tính dựa trên tổng điểm của tất cả cácquân cờ, với giá trị của từng quân như sau:

 Hàm cũng cần xem xét trạng thái chiếu tướng hoặc kết thúc trận đấu

3 Triển khai hàm lượng giá:

function evaluateBoard(board) {

let totalEvaluation = 0;

for (let i = 0; i < 10; i++) { // Duyệt qua các hàng trên bàn cờ

Ngày đăng: 05/02/2025, 21:47

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN