Lập trình java game cờ caro


I. YÊU CẦU BÀI TOÁN
Xây dựng một bàn cờ có kẻ các ô  vuông với kích thước 25x25. Có 2 quân cờ là X và O.
Người chơi có thể đánh với máy. Người thắng là người đi được 5 quân cờ cùng kiểu trên hang dọc, hàng ngang hoặc đường chéo. Hai người hoà nhau khi bàn cờ hết chỗ đánh mà vẫn chưa phân được thắng bại

II. PHÂN TÍCH GIẢI QUYẾT BÀI TOÁN
1. Phân tích yêu cầu
Mô phỏng bàn cờ
  Bàn cờ (Board) bao gồm các ô cờ ( Pos) được đặt trong một mảng 2 chiều (kích thước a x b)
Trong mỗi Pos có thể xác định được:
Vị trí pos ( Row, collumme)
Trạng thái pos (Status) Bao gồm đang trống (0) nước đi của đối thủ (2) hoặc nước đi của máy (1)
Độ nguy hiểm của ô cờ tuỳ theo trạng thái pos và có thể thay đổi được.
Đánh giá giá trị các pos
Giống như trong thực tế, người chơi thường đánh giá một số nước cờ là nguy hiểm, bình thường hoặc ít nguy hiểm, máy tính cũng đánh giá nhưng cụ thể hơn bằng các con số.


2. Phương pháp giải quyết
2.1 Tìm kiếm nước đi
 Giới thiệu về không gian tìm kiếm
Trong trò chơi Caro, cứ sau mỗi nước cờ, mỗi đối thủ sẽ chọn ra từ những ô trống để đi, do đó, sau 1 mỗi nước đi thì số ô trống còn lại sẽ giảm. Như vậy, việc tìm nước đi tiếp theo cho trạng thái có sẵn chỉ là việc tìm kiếm những ô trống còn lại, đồng thời, không gian tìm kiếm sẽ thu hẹp theo số nước đi đã tạo.
Không gian chọn nước đi từ mỗi trạng thái ban đầu là hữu hạn, nhưng không gian tìm kiếm 1 nước đi dẫn đến chiến thắng là rất lớn.Do đó ta không thể vét sạch không gian tìm kiếm nước đi này mà ta phải giới hạn không gian tìm kiếm.
Một không gian tìm kiếm có thể hiện theo 1 cây đa phân và đuợc gọi là cây tìm kiếm hay cây trò chơi.

Game Caro (hay còn gọi là game Gomoku) là một trò chơi quen thuộc đối với nhiều đối tượng, dễ chơi,  giảm căng thẳng,...Cờ Caro là một trong những trò chơi rất phổ biến, đặc biệt là trong giới học sinh, sinh viên. Đây cũng là một trò chơi chúng em rất thích, chính vì vậychúng  em đã chọn đề tài Làm game cờ caro cho môn Trí tuệ nhân tạo.
Trong quá trình hoàn thành đề tài này, chúng em đã tìm hiểu được các thuật toán đã được học trong môn Trí tuệ nhân tạo như thuật toán tìm kiếm nước đi Minimax, giải thuật Alpha-Beta cũng như kỹ năng lập trình ngôn ngữ Java.
Chúng em cũng xin cám ơn sự hướng dẫn tận tình của thầy Phạm Văn Hải, cả về chuyên môn cũng như định hướng. Vì kiến thức còn hạn hẹp nên trong quá trình thực hiện đề tài không thể tránh khỏi thiếu sót. Vì vậy rất mong nhận được nhận sự góp ý của thầy để đề tài có thể hoàn thiện hơn nữa.

NỘI DUNG:

MỤC LỤC

LỜI NÓI ĐẦU 2
I.YÊU CẦU BÀI TOÁN 3
II.PHÂN TÍCH GIẢI QUYẾT BÀI TOÁN 3
1. Phân tích yêu cầu 3
2. Phương pháp giải quyết 3
2.1 Tìm kiếm nước đi 3
2.2 Kỹ thuật lượng giá 8
3. Xây dựng các lớp 9
4. Giao diện và cách chơi 25
KẾT LUẬN 27

LINK DOWNLOAD
M_tả

No comments: