















Preview text:
lOMoAR cPSD| 58564916 Mục lục
Lời mở đầu ...................................................................................................................... 3
1. Giới thiệu ..................................................................................................................... 4
2. Mục tiêu đề tài ............................................................................................................. 4
3. Công cụ và công nghệ ................................................................................................. 5
4. Phân tích thiết kế chương trình ................................................................................... 5
4.1. Luật chơi ............................................................................................................... 5
4.2. Cấu trúc chương trình ........................................................................................... 6
5. Giao diện người dùng (UI) .......................................................................................... 7
6. Thuật toán Minimax và Alpha-Beta ............................................................................ 8
6.1. Mục đích ............................................................................................................... 8
6.2. Cách hoạt động ..................................................................................................... 8
6.3. Cắt tỉa Alpha-Beta ................................................................................................ 9
7. Phân tích mã nguồn ..................................................................................................... 9
7.1. Cấu trúc bàn cờ ..................................................................................................... 9
7.2. Đánh giá tình trạng bàn cờ ................................................................................... 9
7.3. Lượt đi của máy (AI) .......................................................................................... 12
9. Nhận xét -- Đánh giá ................................................................................................. 15
10. Hướng phát triển ...................................................................................................... 15
11. Kết luận ................................................................................................................... 16 Lời mở đầu
Trong thời đại công nghệ số ngày càng phát triển, trí tuệ nhân tạo (Artificial
Intelligence -- AI) đang đóng vai trò quan trọng trong hầu hết các lĩnh vực của
cuộc sống, từ y tế, tài chính cho đến giáo dục và giải trí. Một trong những ứng
dụng trực quan và gần gũi nhất của AI trong lĩnh vực giải trí chính là việc xây
dựng các trò chơi có khả năng tương tác thông minh với người chơi. Trong bối
cảnh đó, việc áp dụng AI vào trò chơi truyền thống như Cờ Vua không chỉ mang
lại sự thú vị cho người chơi mà còn giúp người học lập trình hiểu rõ hơn về các
thuật toán ra quyết định và chiến lược.
Đề tài "Xây dựng trò chơi Cờ Vua giữa người và máy sử dụng trí tuệ nhân
tạo" được thực hiện với mục tiêu chính là tạo ra một ứng dụng trò chơi đơn
giản, dễ sử dụng nhưng có khả năng tương tác thông minh thông qua thuật toán
Minimax kết hợp cắt tỉa Alpha-Beta -- một trong những thuật toán cơ bản và
phổ biến trong lĩnh vực trí tuệ nhân tạo để mô phỏng quá trình suy nghĩ của máy.
Trò chơi được xây dựng bằng ngôn ngữ Python với thư viện giao diện pygame,
cho phép người chơi tương tác trực tiếp thông qua giao diện đồ họa. AI sẽ đóng
vai trò là đối thủ, có khả năng đưa ra nước đi hợp lý dựa trên phân tích tình
huống bàn cờ hiện tại. Thông qua việc cài đặt và tối ưu thuật toán Minimax kết
hợp cắt tỉa Alpha-Beta, trò chơi thể hiện khả năng phòng thủ và tấn công hiệu quả từ phía máy.
Việc hoàn thành đề tài này không chỉ giúp người học củng cố kiến thức về lập
trình hướng đối tượng, xử lý giao diện và cấu trúc dữ liệu, mà còn góp phần
nâng cao hiểu biết về cách các thuật toán AI hoạt động trong thực tế. Đây cũng
là bước khởi đầu hữu ích để tiếp cận những ứng dụng AI phức tạp hơn trong tương lai. 1. Giới thiệu
Cờ Vua là trò chơi chiến thuật cổ điển phổ biến, thường được xem là một trong
những trò chơi trí tuệ sâu sắc nhất trên thế giới. Trò chơi này không chỉ giúp
người chơi thư giãn mà còn phát triển tư duy logic, khả năng phân tích chiến
thuật và tầm nhìn dài hạn. Với những quy tắc phức tạp về cách di chuyển từng
quân cờ, Cờ Vua là một lĩnh vực lý tưởng để áp dụng các kỹ thuật trí tuệ nhân tạo.
Để mở rộng trải nghiệm chơi trò chơi này, đề tài này sẽ áp dụng kỹ thuật lập
trình Python kết hợp với thư viện pygame và thuật toán Trí tuệ nhân tạo (AI),
nhằm xây dựng một phiên bản Cờ Vua đầy đủ chức năng. Phiên bản này không
chỉ cho phép người chơi tham gia vào trò chơi một cách thú vị mà còn có thể thi
đấu với máy tính -- một đối thủ mạnh mẽ được lập trình để đưa ra những nước
đi hợp lý dựa trên chiến thuật.
Mục tiêu chính của dự án là mô phỏng quá trình suy nghĩ logic của AI thông qua
việc triển khai thuật toán Minimax có cắt tỉa Alpha-Beta. Thuật toán này sẽ phân
tích các khả năng di chuyển, định lượng giá trị của từng nước đi và chọn lựa
nước đi tốt nhất để tối ưu hóa kết quả cuối cùng. Để thực hiện điều này, chúng
ta sẽ xây dựng một cây quyết định, trong đó mỗi nút biểu thị một trạng thái của
trò chơi, giúp AI đánh giá và lựa chọn nước đi dựa trên nhiều yếu tố khác nhau.
Ngoài việc phát triển trò chơi, đề tài cũng sẽ xem xét các khía cạnh như giao
diện người dùng trực quan, tạo điều kiện thuận lợi cho người chơi trong việc
thao tác và tương tác với trò chơi. Đặc biệt, việc thiết kế AI sao cho có các chiến
thuật tiên tiến như đánh giá vị trí quân cờ, kiểm soát trung tâm và nhận biết các
tình huống tấn công sẽ mang đến cho người chơi những thử thách thực sự, từ đó
nâng cao trải nghiệm và kỹ năng chơi.
Cuối cùng, dự án này không chỉ đơn thuần là việc phát triển một trò chơi, mà
còn mở ra cơ hội để tìm hiểu và áp dụng những kiến thức về trí tuệ nhân tạo và
lập trình, góp phần vào việc phát triển tư duy sáng tạo và khả năng giải quyết
vấn đề phức tạp của người tham gia.
2. Mục tiêu đề tài •
Phân tích và triển khai một trò chơi cờ vua đơn giản nhưng hiệu quả trong
việc thể hiện sức mạnh của trí tuệ nhân tạo. •
Tăng cường khả năng lập trình thực tế của sinh viên thông qua dự án có tính ứng dụng cao. •
Giúp người chơi có thể luyện tập cờ vua với một đối thủ ảo có chiến lược,
từ đó nâng cao kỹ năng tư duy. •
Làm nền tảng cho việc phát triển các trò chơi có AI trong tương lai hoặc
nâng cấp hệ thống hiện tại với các thuật toán học sâu (deep learning). • .
3. Công cụ và công nghệ
• Python: Ngôn ngữ lập trình thông dụng, đơn giản, dễ đọc và dễ tiếp cận
với cộng đồng phát triển lớn.
• pygame: Một thư viện chuyên xử lý đồ họa và âm thanh trong Python, rất
thích hợp để xây dựng các trò chơi 2D.
• python-chess: Cung cấp toàn bộ logic về cờ vua bao gồm luật di chuyển,
kiểm tra tình huống chiếu hết, hòa, và hỗ trợ sinh nước đi.
• VS Code / PyCharm: Các môi trường phát triển tích hợp (IDE) mạnh
mẽ, hỗ trợ lập trình Python hiệu quả, có tính năng debug và gợi ý mã nguồn thông minh.
• Hệ thống tập tin và ảnh: Tải và hiển thị quân cờ bằng ảnh PNG, lưu trữ
cấu trúc thư mục hợp lý giúp dễ dàng quản lý tài nguyên.
4. Phân tích thiết kế chương trình 4.1. Luật chơi • Bàn cờ 8x8 tiêu chuẩn. •
Người chơi và máy luân phiên đánh quân trắng và đen. •
Người chơi luôn đi trước với quân trắng. •
Các luật di chuyển tuân theo quy tắc cờ vua tiêu chuẩn:
o Vua di chuyển 1 ô theo mọi hướng
o Hậu di chuyển theo đường thẳng hoặc chéo không giới hạn số ô o
Xe di chuyển theo đường thẳng không giới hạn số ô o Tượng di
chuyển theo đường chéo không giới hạn số ô o Mã di chuyển theo hình chữ L
o Tốt di chuyển 1 ô về phía trước, ăn quân theo đường chéo
Các tình huống đặc biệt: o Nhập thành (ngắn và dài) o
Phong cấp tốt o Bắt tốt qua đường Kết thúc trò chơi: o Chiếu hết
o Hòa vì bị chiếu quá nhiều lần o Hòa vì không đủ quân mặt o Hòa
do luật 75 nước không ăn quân o Hòa do lặp lại nước đi 5 lần
4.2. Cấu trúc chương trình
Chương trình được chia thành ba mô-đun chính, mỗi mô-đun đảm nhận một
chức năng riêng biệt và hỗ trợ lẫn nhau trong việc xây dựng trò chơi Cờ Vua hoàn chỉnh: •
main.py – Mô-đun điều khiển chính:
o Là nơi khởi tạo chương trình, bao gồm thiết lập cửa sổ giao diện,
vòng lặp game chính và quản lý tương tác giữa người chơi và AI.
o Quản lý luân phiên lượt đi giữa người và máy bằng cách sử dụng
biến human_turn và trạng thái bàn cờ từ thư viện python-chess.
o Hiển thị thông báo kết thúc ván đấu bằng các câu thông báo tương
ứng với từng tình huống như chiếu hết, hòa, hoặc hết quân.
o Thực hiện gọi đến get_ai_move() để AI đưa ra nước đi dựa trên
phân tích của thuật toán Minimax. •
chess_engine.py – Mô-đun xử lý logic trí tuệ nhân tạo:
o Xây dựng hệ thống đánh giá bàn cờ dựa trên các yếu tố như vị trí,
giá trị quân, kiểm soát trung tâm và khả năng tấn công vua.
o Thuật toán Minimax kết hợp cắt tỉa Alpha-Beta được triển khai
đệ quy để phân tích các nước đi có lợi và rút ngắn thời gian xử lý.
o Trong trường hợp nhiều nước đi có điểm số ngang nhau, chương
trình sẽ chọn ngẫu nhiên để tránh sự đơn điệu, tăng tính chiến thuật.
o Hàm get_ai_move tự động phong hậu khi tốt đến hàng cuối, đảm
bảo AI đưa ra nước đi hợp lệ và mạnh mẽ nhất. •
ui.py – Mô-đun giao diện người dùng:
o Quản lý việc vẽ bàn cờ 8x8, tô màu ô và vẽ quân cờ bằng hình ảnh
đã tải từ thư mục assets.
o Hỗ trợ các tính năng tương tác như chọn quân, làm nổi bật các ô đi
hợp lệ, và hiệu ứng chuyển động mượt mà khi quân cờ di chuyển (animate_move).
o Chuyển đổi giữa tọa độ pixel và ô cờ để xác định quân cờ được
chọn dựa vào chuột người dùng.
5. Giao diện người dùng (UI)
Giao diện được thiết kế trực quan với pygame, bao gồm: Bàn cờ 8x8 với
màu sắc hình ô vuông xen kẽ (trắng và xám) Hiển thị các quân cờ với hình ảnh trực quan:
o Các quân cờ được hiển thị bằng hình ảnh có thể nhận diện rõ ràng o
Kích thước chuẩn 640x640 pixels (mỗi ô 80x80 pixels) Chức năng tương tác:
o Chọn quân và hiển thị các nước đi hợp lệ (đánh dấu màu đỏ) o Kéo
thả quân cờ (với hiệu ứng di chuyển mượt mà) o Hiển thị thông báo kết thúc trận đấu Tính năng đặc biệt:
o Hiệu ứng hoạt ảnh khi di chuyển quân cờ o Đánh dấu ô vuông hiện tại được chọn
Giao diện được thiết kế thân thiện với người dùng, trực quan để người chơi dễ
dàng nắm bắt tình trạng trò chơi và tương tác một cách tự nhiên.
6. Thuật toán Minimax và Alpha-Beta 6.1. Mục đích
Giúp AI lựa chọn nước đi tốt nhất bằng cách mô phỏng các trạng thái có thể xảy
ra của bàn cờ và xác định chiến lược tối ưu nhất.
6.2. Cách hoạt động
Minimax là thuật toán cây tìm kiếm 2 người chơi:
o Người chơi trắng (Max): cố gắng tối đa hóa điểm (maximize) o Người
chơi đen (Min): cố gắng giảm điểm (minimize) Thuật toán tạo
ra một cây trò chơi với:
o Mỗi nút đại diện cho một trạng thái của bàn cờ o Các nhánh đại diện
cho các nước đi có thể o Độ sâu của cây là số lượt đi xét trước Đánh giá:
o Trạng thái chiến thắng: giá trị cao (99999 điểm) o Trạng thái thua: giá
trị thấp (-99999 điểm) o Trạng thái hòa: giá trị trung bình (0 điểm)
o Trạng thái trung gian: đánh giá dựa trên giá trị quân cờ và vị trí chiến lược
6.3. Cắt tỉa Alpha-Beta •
Alpha: điểm số tốt nhất mà người chơi MAX có thể đảm bảo. •
Beta: điểm số tốt nhất mà người chơi MIN có thể đảm bảo. • Cắt tỉa xảy ra khi:
o Với nút MAX: nếu giá trị hiện tại ≥ beta → cắt bỏ nhánh (không cần xét nữa)
o Với nút MIN: nếu giá trị hiện tại ≤ alpha → cắt bỏ nhánh (không cần xét nữa)
Mục tiêu: giảm đáng kể thời gian tính toán khi tìm nước đi tốt nhất mà không
ảnh hưởng đến kết quả cuối cùng. 7. Phân tích mã nguồn
Dưới đây là một số đoạn mã quan trọng đã được bình luận và giải thích: 7.1. Cấu trúc bàn cờ
Bàn cờ được quản lý bởi thư viện python-chess, sử dụng lớp chess.Board() để
tạo ra một bàn cờ mới theo chuẩn FIDE. board = chess.Board()
Đối tượng board này đóng vai trò trung tâm trong toàn bộ trò chơi, giúp:
- Theo dõi vị trí quân cờ hiện tại.
- Kiểm tra hợp lệ của nước đi (board.is_legal(move)).
- Sinh tất cả các nước đi hợp lệ (board.legal_moves).
- Kiểm tra trạng thái ván đấu: chiếu hết, hòa, bế tắc...
- Xử lý các tình huống đặc biệt như nhập thành, phong cấp, bắt tốt qua đường. Ví dụ: if board.is_checkmate():
# Chiếu hết elif board.is_stalemate(): # Hòa bế tắc
7.2. Đánh giá tình trạng bàn cờ
Hàm đánh giá bàn cờ là yếu tố quyết định chất lượng nước đi của AI:
Giải thích các khối chính trong hàm evaluate_board 1. Bảng giá trị quân cờ
PIECE_VALUES = {
chess.PAWN: 100, chess.KNIGHT: 320, chess.BISHOP: 330,
chess.ROOK: 500, chess.QUEEN: 900,
chess.KING: 20000 }
Đây là bảng định nghĩa giá trị cơ bản cho từng loại quân cờ, dùng để đánh giá
sức mạnh tương đối của các quân trên bàn cờ.
2. Kiểm tra kết thúc ván cờ if board.is_checkmate(): return -99999 if
board.turn else 99999 elif board.is_stalemate() or
board.is_insufficient_material(): return 0
Nếu ván cờ kết thúc với chiếu hết (checkmate), trả về điểm rất lớn âm hoặc
dương để thể hiện thắng/thua rõ ràng.
Nếu là hòa (stalemate) hoặc không đủ quân để chiếu hết (insufficient material), trả về 0 điểm.
3. Khởi tạo giá trị và ô trung tâm value = 0
center_squares = [chess.E4, chess.D4, chess.E5, chess.D5]
Khởi tạo tổng điểm đánh giá và định nghĩa các ô trung tâm của bàn cờ - nơi
kiểm soát quan trọng trong chiến lược. 4.
Duyệt tất cả các ô trên bàn cờfor square in chess.SQUARES: piece
= board.piece_at(square) if piece:
color_factor = 1 if piece.color == chess.WHITE else -1 piece_value
= PIECE_VALUES.get(piece.piece_type, 0)
value += piece_value * color_factor
Duyệt từng ô trên bàn cờ. Nếu ô có quân cờ, lấy giá trị quân từ bảng
`PIECE_VALUES` và cộng vào tổng điểm.
`color_factor` giúp tính điểm dương cho trắng và âm cho đen. 5.
Kiểm soát ô trung tâmif square in center_squares: value += 15 * color_factor
Nếu quân cờ đang đứng tại ô trung tâm, cộng thêm 15 điểm vì kiểm soát trung
tâm là yếu tố chiến lược quan trọng. 6.
Đánh giá mức độ tiến của quân Tốtif piece.piece_type ==
chess.PAWN: rank = chess.square_rank(square)
advancement = rank if piece.color == chess.WHITE else 7 - rank value
+= advancement * 5 * color_factor
Nếu là quân Tốt, càng tiến gần hàng phong cấp thì càng có giá trị chiến lược.
Cộng thêm điểm theo độ tiến của tốt. 7.
Đánh giá khả năng tấn công vua địchenemy_king_square =
board.king(not piece.color) if enemy_king_square and
board.is_attacked_by(piece.color, enemy_king_square):
value += 30 * color_factor
Nếu quân hiện tại đang tấn công trực tiếp vào vị trí của vua địch, cộng thêm 30 điểm.
8. Trả về tổng điểm đánh giá return value
Kết thúc hàm, trả về tổng điểm đã tính toán để phản ánh lợi thế bên nào đang nắm giữ.
7.3. Lượt đi của máy (AI)
AI sẽ tính toán nước đi tốt nhất dựa trên tình trạng hiện tại của bàn cờ:
Giải thích hàm get_ai_move
1. Gọi hàm minimax để tìm nước đi tốt nhất
_, move = minimax(board, depth, -float('inf'), float('inf'), board.turn)
Gọi hàm minimax với độ sâu tìm kiếm (depth), alpha = -∞ và beta = +∞, xác
định theo lượt đi hiện tại.
Hàm trả về giá trị đánh giá và nước đi tốt nhất (move), nhưng chỉ lưu nước đi. 2.
Kiểm tra và thực hiện phong hậu nếu tốt đến cuối bàn
if move is not None and board.piece_at(move.from_square).piece_type == chess.PAWN:
rank = chess.square_rank(move.to_square) if (board.turn ==
chess.WHITE and rank == 7) or (board.turn == chess.BLACK and rank ==
0): move = chess.Move(move.from_square, move.to_square, promotion=chess.QUEEN)
Kiểm tra nếu quân cờ di chuyển là quân Tốt (PAWN) và đi đến hàng cuối cùng
(hàng 7 cho trắng, hàng 0 cho đen).
Nếu đúng, thực hiện phong hậu bằng cách tạo nước đi mới với
`promotion=chess.QUEEN`.
3. Trả về nước đi đã xử lý return move
Trả về nước đi tốt nhất của AI, đã được xử lý phong hậu nếu cần thiết.
7.4. Thuật toán Minimax có cắt tỉa
Giải thích các khối chính trong hàm Minimax (Alpha-Beta Pruning) 1.
Kiểm tra điều kiện dừngif depth == 0 or board.is_game_over(): return
evaluate_board(board), None best_moves = []
Nếu đạt độ sâu tối đa hoặc ván cờ đã kết thúc, hàm sẽ đánh giá bàn cờ hiện tại
và trả về kết quả.
Biến best_moves được khởi tạo để lưu các nước đi tốt nhất trong nhánh hiện tại. 2.
Nhánh người chơi tối ưu (maximizing player) if maximizing_player:
max_eval = -float('inf') for move in board.legal_moves: board.push(move)
eval, _ = minimax(board, depth - 1, alpha, beta, False) board.pop()
if eval > max_eval: max_eval = eval best_moves = [move]
elif eval == max_eval: best_moves.append(move) alpha =
max(alpha, eval) if beta <= alpha: break
return max_eval, random.choice(best_moves) if best_moves else None
Nếu là lượt của người chơi tối ưu (AI), thuật toán tìm nước đi có giá trị đánh giá cao nhất.
Giả lập từng nước đi, gọi đệ quy để đánh giá, sau đó quay lui (pop) nước đi.
Áp dụng cắt tỉa Alpha-Beta: nếu beta <= alpha thì không xét tiếp các nhánh còn lại.
Chọn ngẫu nhiên một trong các nước đi tốt nhất nếu có nhiều nước có giá trị bằng nhau.
3. Nhánh người chơi đối thủ (minimizing player) else: min_eval = float('inf')
for move in board.legal_moves: board.push(move)
eval, _ = minimax(board, depth - 1, alpha, beta, True) board.pop()
if eval < min_eval: min_eval = eval best_moves = [move]
elif eval == min_eval: best_moves.append(move) beta = min(beta,
eval) if beta <= alpha: break
return min_eval, random.choice(best_moves) if best_moves else None
Nếu là lượt của người chơi đối thủ (AI đang phòng thủ), thuật toán tìm nước đi
làm giảm giá trị tối đa.
Tương tự như nhánh maximizing, áp dụng cắt tỉa để bỏ qua các nhánh không cần thiết.
Chọn ngẫu nhiên một trong các nước đi kém nhất (nhưng hợp lý) nếu có nhiều
lựa chọn tương đương.
8. Kết quả thực hiện
Chức năng đã đạt được: •
Giao diện trực quan, dễ sử dụng với pygame •
Hiển thị đầy đủ bàn cờ và các quân cờ với hình ảnh trực quan •
Hỗ trợ đầy đủ luật chơi cờ vua theo tiêu chuẩn quốc tế •
AI thông minh với thuật toán Minimax có cắt tỉa Alpha-Beta •
Hiệu ứng hoạt ảnh mượt mà cho việc di chuyển quân cờ •
Hiển thị các nước đi hợp lệ khi chọn quân •
Tự động kiểm tra và thông báo các tình huống kết thúc: o Chiếu hết
o Hòa cờ (bế tắc, không đủ quân, lặp lại nước đi, v.v.) •
Hiển thị thông báo kết quả trận đấu
9. Nhận xét -- Đánh giá Ưu điểm •
Áp dụng thành công thuật toán AI Minimax với cắt tỉa Alpha-Beta •
Hỗ trợ đầy đủ luật chơi cờ vua chính thống •
Giao diện trực quan, dễ sử dụng •
Hiệu ứng hoạt ảnh nâng cao trải nghiệm người dùng •
Cấu trúc mã nguồn rõ ràng, dễ mở rộng •
Phản hồi nhanh nhờ tối ưu thuật toán cắt tỉa Alpha-Beta Nhược điểm •
AI có độ sâu tìm kiếm giới hạn (mặc định chỉ là 2) do giới hạn về hiệu suất •
Chưa có cơ chế lưu/tải ván cờ •
Chưa hỗ trợ chế độ chơi với người khác hoặc chơi online •
Không có chế độ đảo ngược góc nhìn bàn cờ khi chơi quân đen •
Chưa có đồng hồ cờ để giới hạn thời gian •
Hàm đánh giá có thể được cải thiện để AI chơi tốt hơn
10. Hướng phát triển Cải thiện AI:
o Tăng độ sâu tìm kiếm (tùy chọn độ khó) o Áp dụng kỹ thuật Iterative Deepening
o Cải thiện hàm đánh giá với các yếu tố chiến lược cao cấp o Tích
hợp cơ sở dữ liệu khai cuộc Bổ sung tính năng:
o Chế độ chơi 2 người hoặc chơi online o Lưu và tải ván cờ (định
dạng PGN) o Đồng hồ cờ với nhiều chế độ khác nhau o Phát tiếng khi
di chuyển quân o Tùy chọn góc nhìn bàn cờ Giao diện và trải nghiệm:
o Chủ đề và bộ quân cờ tùy chỉnh o Menu chính với nhiều tùy chọn o
Bảng xếp hạng và thống kê Nâng cao:
o Tích hợp machine learning để AI học từ các ván đấu o Hỗ trợ phân
tích ván đấu với công cụ đánh giá o Chức năng gợi ý nước đi cho người mới chơi 11. Kết luận
Đề tài đã hoàn thành việc xây dựng một trò chơi Cờ Vua giữa người và máy, áp
dụng thành công thuật toán Minimax có cắt tỉa Alpha-Beta để mô phỏng suy
nghĩ của AI. Hệ thống có khả năng đưa ra các nước đi hợp lý dựa trên phân tích
tình huống bàn cờ hiện tại, qua đó tạo ra một đối thủ máy tính có chiến lược và
có khả năng thử thách người chơi thực sự.
Ngoài việc hoàn thiện các chức năng cốt lõi như giao diện trực quan, xử lý luật
chơi đầy đủ, và mô hình ra quyết định của AI, đề tài còn giúp người thực hiện
củng cố và mở rộng các kiến thức về lập trình Python, thiết kế hệ thống phần
mềm theo hướng module, và vận dụng thuật toán trong thực tiễn.
Thông qua quá trình phát triển, sinh viên cũng rèn luyện được tư duy logic, khả
năng giải quyết vấn đề, đồng thời tiếp cận với các khái niệm cơ bản nhưng quan
trọng trong trí tuệ nhân tạo như tìm kiếm trạng thái, đánh giá heuristics, và tối
ưu hóa thuật toán. Đây là những kỹ năng và kiến thức nền tảng có thể ứng dụng
rộng rãi trong các dự án thực tế và nghiên cứu sau này.