Chính vì lý do đó mà chúng em đã quyết định lựa chọn cờ Caro làm để tài cho bài tập lớn môn trí tuệ nhân tạo.. Tụi em thực hiện đề tài này với mục đích xây dựng game cờ Caro có trí tuệ n
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC HUTECH
HỌC CÓ GIÁM SÁT VÀ ỨNG DỤNG
BÁO CÁO HỌC PHẦN: TRÍ TUỆ NHÂN TẠO
HỒ CHÍ MINH, NĂM 2024
1
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HUTECH
ĐỀ TÀI: CỜ CARO
HỌ VÀ TÊN: ĐÀO NHẬT CƯỜNG - HOÀNG GIA BẢO - TRẦN ANH TÚ
Mã sinh viên: 2280600337 - 2280600177 - 2280603529
Lớp: 22DTHE4 Ngành: Công nghệ thông tin
NGƯỜI HƯỚNG DẪN: TS Hoàng Văn Quý
SINH VIÊN THỰC HIỆN Đào Nhật Cường - 2280600337 Hoàng Gia Bảo - 2280600177 Trần Anh Tú - 2290603529
Trang 3LỜI MỞ ĐẦU 4
CHƯƠNG 1 TRÍ TUỆ NHÂN TẠO 5
1.1 Giới thiệu về trí tuệ nhân tạo, AI 5
1.1.1 AI, Trí tuệ nhân tạo là gì 5
1.1.2 Lý do chọn ra đề tài 5
1.2 Giới thiệu chung 5
1.3 Giới thiệu về đề tài đã chọn 5
CHƯƠNG 2 THUẬT TOÁN CỜ CARO 5
2.1 Giới thiệu về luật chơi cờ Caro 5
2.2 Thuật toán của cờ Caro 5
DANH MỤC CÁC HÌNH ẢNH 6
DANH MỤC BẢNG BIỂU 7
TÀI LIỆU THAM KHẢO 8
PHỤ LỤC 9
3
Trang 4LỜI MỞ ĐẦU
Hiện nay, việc ứng dụng trí tuệ nhân tạo vào việc phát triển game đã trở nên
vô cùng phổ biến, đặc biệt là những game mang tính trí tuệ cao Và cờ Caro là một game như vậy Chính vì lý do đó mà chúng em đã quyết định lựa chọn cờ Caro làm để tài cho bài tập lớn môn trí tuệ nhân tạo Đây là tài liệu dùng để miêu tả một cách cơ bản về việc xây dựng game cờ Caro Trong game có sử dụng thuật toán MiniMax với
độ sâu là 4 và thuật toán cắt cụt alpha-beta để giảm thời gian tính toán Tài liệu này giúp ta có một cái nhìn tổng quát về việc áp dụng thuật toán MiniMax và cắt cụt alpha-beta vào game cờ Caro Do thời gian có hạn nên chúng em chưa thể tối ưu được các thuật toán sử dụng trong game, nhưng chúng em sẽ cố gắng hoàn thiện trong thời gian sớm nhất
Tụi em thực hiện đề tài này với mục đích xây dựng game cờ Caro có trí tuệ nhân tạo Chúng em đã thực hiện thành công nhưng vẫn còn rất nhiều sai sót mong thầy cô
có thể đánh giá và góp ý nhiều nhất ạ
Trang 5CHƯƠNG 1 TRÍ TUỆ NHÂN TẠO
1.1 Giới thiệu về trí tuệ nhân tạo, AI
1.1.1 AI, Trí tuệ nhân tạo là gì
AI (trí tuệ nhân tạo) là công nghệ cho phép máy móc mô phỏng khả năng học hỏi
và thực hiện các nhiệm vụ giống con người AI có thể xử lý dữ liệu, nhận diện hình ảnh, giọng nói, và đưa ra quyết định dựa trên thông tin được học Các ứng dụng AI phổ biến bao gồm xe tự lái, trợ lý ảo, và hệ thống khuyến nghị trong mua sắm trực tuyến
1.1.2 Lý do chọn ra đề tài
Chúng tôi chọn đề tài "Tạo ra game cờ caro" vì ba lý do chính Thứ nhất, cờ caro
là trò chơi phổ biến và được yêu thích Chuyển nó thành game điện tử giúp nhiều người chơi dễ dàng hơn Thứ hai, làm game này giúp chúng tôi học và áp dụng nhiều
kỹ năng lập trình quan trọng Cuối cùng, đây là cơ hội tốt để tạo ra một sản phẩm thực
tế và hữu ích
1.2 Giới thiệu chung
Ngày nay, nhiều trò chơi truyền thống đang được chuyển thành game điện tử Cờ caro
là một ví dụ điển hình Game cờ caro không chỉ giúp người chơi giải trí, mà còn có thể thêm nhiều tính năng mới như chơi online hoặc đấu với máy Việc phát triển game này cũng giúp người làm nâng cao kỹ năng lập trình và tư duy logic
1.3 Giới thiệu về đề tài đã chọn
Đề tài của chúng tôi là tạo game cờ caro bằng Python Chúng tôi sẽ dùng thư viện Pygame để làm giao diện Game sẽ có bàn cờ cho hai người chơi, hệ thống kiểm tra thắng thua, và hiển thị kết quả Nếu có thể, chúng tôi sẽ thêm chế độ chơi với máy Mục tiêu là học cách dùng Python để tạo một game đơn giản nhưng đầy đủ chức năng
CHƯƠNG 2 THUẬT TOÁN CỜ CARO
2.1 Giới thiệu về luật chơi cờ Caro
5
Trang 6Game sẽ gồm có hai người chơi, một người sẽ cầm quân X và người còn lại sẽ cầm quân O Hai người chơi sẽ phải lần lượt đánh ra một quân cờ tương ứng của mình trên bàn cờ MxN ô ( thường thì M = N )
Luật chơi sẽ như sau:
- Quân X sẽ được đánh trước Hai người chơi có thể đánh vào bất kì vào ô nào trên bàn cờ miễn là ô đó chưa được đánh
- Trò chơi sẽ kết thúc nếu như một trong hai người choi đạt được năm quân thẳng hàng liên tiếp nhau ( hàng ngang, hàng dọc, hoặc hàng chéo )
- Dưới đây là bàn cờ Caro:
Đay Là Hình X :
Trang 8Hình O
Trang 9Hình Icon:
2.2 Tổng quan về game Cờ Caro
Cờ Caro là một trò chơi chiến thuật phổ biến, trong đó hai người chơi lần lượt đánh dấu X và O trên một bảng ô vuông Mục tiêu là tạo được một hàng liên tiếp gồm 5 quân cờ theo chiều ngang, dọc hoặc chéo
2.3 Thuật toán của cờ Caro
Tên thuật toán: Grid Traversal Win-Check Algorithm (Thuật toán Kiểm tra Chiến thắng bằng Duyệt Lưới)
Mục đích:
Xác định xem có người chơi nào đã thắng cuộc (có 5 quân cờ liên tiếp theo bất
kỳ hướng nào)
Xác định trạng thái hòa (toàn bộ bàn cờ đã được lấp đầy mà không có người thắng)
9
Trang 10Cách thức hoạt động: a) Duyệt qua từng ô trên bàn cờ b) Tại mỗi ô không trống, kiểm tra 4 hướng có thể tạo thành 5 quân liên tiếp:
Ngang (horizontal)
Dọc (vertical)
Chéo từ trái trên xuống phải dưới (diagonal top-left to bottom-right)
Chéo từ phải trên xuống trái dưới (diagonal top-right to bottom-left) c) Với mỗi hướng, kiểm tra 5 ô liên tiếp (bao gồm ô hiện tại) d) Nếu tìm thấy 5 ô liên tiếp cùng giá trị (X hoặc O), trả về kết quả thắng e) Nếu duyệt hết bàn cờ mà không tìm thấy người thắng, kiểm tra xem bàn cờ đã đầy chưa để xác định trạng thái hòa
Ưu điểm:
Đơn giản, dễ hiểu và dễ cài đặt
Hoạt động chính xác cho mọi kích thước bàn cờ
Có thể dễ dàng mở rộng để kiểm tra các điều kiện chiến thắng khác (ví dụ: 6 quân liên tiếp)
Nhược điểm:
Không hiệu quả cho bàn cờ lớn, vì phải duyệt qua mọi ô
Thực hiện nhiều phép kiểm tra trùng lặp, đặc biệt ở giữa bàn cờ
Độ phức tạp:
Thời gian: O(n*m), với n và m là kích thước của bàn cờ
Trang 11 Sử dụng cấu trúc dữ liệu phụ để theo dõi các dãy tiềm năng, giảm số lần kiểm tra
2.4 Cách thức hoạt động
Được viết trong visual studio code
Khởi tạo bàn cờ:
Bàn cờ được khởi tạo với một ma trận 2D (board) và một ma trận 3D (counts) để theo dõi số quân cờ liên tiếp theo 4 hướng
Thực hiện nước đi:
Khi một nước đi được thực hiện, thuật toán cập nhật bàn cờ và tính toán số quân cờ liên tiếp theo 4 hướng
11
Trang 12Kiểm tra chiến thắng:
Thuật toán kiểm tra xem có ít nhất 5 quân cờ liên tiếp theo bất kỳ hướng nào không -Duyệt từ trái sang phải
-Duyệt từ trên xuống dưới
-Duyệt từ chéo chính
-Duyệt từ chéo phụ
Trang 13Vòng lặp chính của game:
Vòng lặp chính xử lý các sự kiện, cập nhật trạng thái game, và vẽ bàn cờ
13
Trang 14Sự Kiện click chuột:
Khi người chơi nhấp chuột, code tính toán vị trí ô được chọn, thực hiện nước đi, kiểm tra chiến thắng hoặc hòa, và chuyển lượt chơi
Trang 15Hàm này vẽ bàn cờ bằng cách lặp qua tất cả các ô và vẽ X hoặc O tương ứng.
Hiển thị kết quả:
2.5
15
Trang 16DANH MỤC CÁC HÌNH ẢNH
Trang 17DANH MỤC BẢNG BIỂU
17
Trang 18TÀI LIỆU THAM KHẢO
Trang 19PHỤ LỤC
19