Trí tuệ nhân tạo Xây dựng chương trình cờ caro đánh với máy tính

25 1.3K 6
Trí tuệ nhân tạo  Xây dựng chương trình cờ caro đánh với máy tính

Đ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

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG * - BÁO CÁO MÔN: PROJECT Đề tài: Lập trình chương trình game cờ caro đánh với máy tính Sinh viên thực hiện: Nguyễn Văn Thành MSSV: 20102662 Lớp: CNTT K55 Giảng viên hướng dẫn: TS Trần Hải Anh Hà Nội, Ngày 31/12/2014 MỤC LỤC LỜI GIỚI THIỆU ……………………………………………………………… PHẦN I MÔ TẢ BÀI TOÁN………………………………………………… PHẦN II GIẢI QUYẾT BÀI TOÁN………………………………………… A B C Ngôn ngữ thực hiện……………………………………………………… Giải toán……………………………………………………… Thiết kế giao diện……………………………………………………… Xây dựng chức thiết kế lớp…………………………………… a Các chức cần thiết…………………………………………… b Phân tích thiết kế lớp…………………………………………… Xây dựng chức người chơi với người chơi……………………… 10 Thực chức Undo, Redo…………………………………… 11 Xử lý thắng thua……………………………………………………… 12 Trí tuệ nhân tạo cho máy cờ Caro……………………………… 12 a Sơ lược trí tuệ nhân tạo………………………………………… 13 b Trí tuệ nhân tạo cờ Caro………………………………………13 Giao diện cách chơi…………………………………………………… 14 Giao diện……………………………………………………………… 15 Cách chơi……………………………………………………………….15 PHẦN III MÃ NGUỒN………………………………………………………… 15 TÀI LIỆU THAM KHẢO……………………………………………………… 24 LỜI GIỚI THIỆU Cờ caro trò chơi logic cổ xưa Trái Đất Nó sáng tạo từ nhiều văn minh khác cách độc lập Nó bắt đầu xuất từ năm 2000 trước CN sông Hoàng Hà, Trung Quốc Một số nhà khoa học tìm thấy chứng chứng minh Caro phát minh Hy lạp cổ đại Châu Mỹ trước thời Colombo.Môn cờ cổ Trung Quốc Wutzu Cờ Caro du nhập từ Trung Quốc vào Nhật Bản từ khoảng năm 270 trước CN Nó thường gọi Gomoku có tên gọi khác tuỳ theo thời gian địa phương Kakugo, gomoku-narabe, Itsutsu-ishi Người ta tìm thấy trò chơi cổ từ di tích Nhật năm 100 sau CN thấy biến thể Caro.Nó lan truyền nhanh chóng với tên Kakugo (trò quân) Các nhà sử học nói vào kỷ 17 18, người chơi trò này-người già người trẻ.Năm 1858, sách trò chơi xuất bản, gọi Kakugo Nó tiếp tục chơi, gọi với nhiều tên khác Goren, Goseki, Gomokunarabe, Gomoku phát triển ngày thành thể loại phức tạp họ hàng đông đúc nó, Renju (chuỗi ngọc trai) Trong sống ngày, game cờ caro phổ biến đa số bạn học sinh, sinh viên thường xuyên chơi Nó vừa game giải trí tốt sau học căng thẳng, vừa trò chơi có tính trí tuệ cao kích thích tư người chơi PHẦN I MÔ TẢ BÀI TOÁN Xây dựng trò chơi cờ caro bàn cờ gồm 20 hàng 20 cột, tạo thành hình chữ nhật kích thước 20*20 Các tính trò chơi: - Tính cho người chơi với Tính cho người chơi đấu với máy Các chức khác như: New Game để bắt đầu ván chơi mới, Undo, Redo cho phép đánh lại nước trước đó, Exit để đóng trò chơi Ngoài bổ sung thêm chức phụ Option lưu thông tin luật chơi, Help trợ giúp hướng dẫn cách chơi… Trên sở đề tài em xây dựng chương trình game cờ caro đơn giản bao gồm tính Dù cố gắng chương trình em chắn tránh khỏi thiếu xót, em mong nhận ý kiến nhận xét, góp ý thầy cô môn để chương trình hoàn thiện PHẦN II GIẢI QUYẾT BÀI TOÁN A Ngôn ngữ thực Ngôn ngữ thực chương trình: C# Trình biên dịch sử dụng: Visual Studio 6.1 B Giải toán Thiết kế giao diện Tạo project mới: Mở visual studio, vào mục visual C#, chọn Windows forms Application, đặt tên project: TroChoiCoCaro Cửa sổ chương trình ban đầu lên giao diện Form1.cs[Design] dùng để thiết kế giao diện Mở hộp toolbox, mục Menus & Toolbars ta chọn Menu Strip, kéo thả sang giao diện form Ta đặt tên MenuStrip tương ứng với chức như: File (New Game, Exit), Edit (Undo, Redo), Option, Help Trong New Game ta đặt chế độ chơi Player vs Player (người chơi với người) Player vs Com (người chơi với máy) Các chức sử dụng Toolbox: - PictureBox dùng để chèn ảnh biểu tượng trò chơi thị giao diện Các Button dùng để xây dựng nút: Player vs Player, Player vs Com, New Game, Exit Panel khung thực trò chơi, để vẽ bàn cờ thực chức chơi cờ Tùy vào thẩm mỹ người thiết kế, ta chỉnh sửa màu sắc, size, cỡ chữ cho chức mục System.Windows.Forms Xây dựng chức thiết kế lớp a Các chức cần thiết - Chơi game: Chơi với người, chơi với máy - Xử lý thắng thua - Các chức Edit( Undo, Redo): cho phép đánh lại khôi phục lại nước - Trí tuệ cho máy tính: Có thể chia theo level: Dễ, Trung Bình, Khó - Thêm vài chức khác như: Save Game, Load Game… Ban_Co int SoDong; int SoCot; Void VeBanCo(graphics g, O_Co[][] MangOCo) Void VeQuanCo(graphics g, int Dong, int Cot, image img O_Co[][] MangOCo) // AI: Trí tuệ nhân tạo b Phân tích thiết kế lớp O_Co const int ChieuDai; const int ChieuRong; const int SoHuu; CaroChess O_Co[][]Mang_O_Co; Ban_Co ban_co; Void VeOco(graphics g, int Int LuotDi; SoHuu) Bool SanSang; Stack Cac_Nuoc_Da_Di; Stack Cac_Nuoc_Di_Lai; Void KhoiTaoMangOCo() Void VeBanCo(graphics g) Void XacDinhOCo(int x, int y, • Lớp Ô cờ: Graphics g) Thực chức lưu thông tin ô cờ nhưVoid chiềuChoiVoiNguoi() dài, chiều rộng, vị Void ChoiVoiMay() trí dòng, vị trí cột, tình trạng ô cờ: trống hay đánh(sở hữu), Bool DuyetChienThang() sở hữu quân cờ nào… // AI: Trí tuệ nhân tạo class OCo { public const int _ChieuRong = 25; public const int _ChieuCao = 25; private int _Dong; public int Dong { get { return _Dong; } set { _Dong = value; } } private int _Cot; public int Cot { get { return _Cot; } set { _Cot = value; } } private Point _ViTri; public Point ViTri { get { return _ViTri; } set { _ViTri = value; } } private int _SoHuu; public int SoHuu { get { return _SoHuu; } set { _SoHuu = value; } } public OCo() { } public OCo(int dong, int cot, Point vitri, int sohuu) { _Dong = dong; _Cot = cot; _ViTri = vitri; _SoHuu = sohuu; } • Lớp Bàn cờ: Lớp thực chức lưu thông tin bàn cờ số dòng, số cột Đồng thời thực chức như: vẽ bàn cờ, vẽ quân cờ, xóa quân cờ… class BanCo { private int _SoDong; public int SoDong { get { return _SoDong; } } private int _SoCot; public int SoCot { get { return _SoCot; } } public BanCo() { _SoDong = 0; _SoCot = 0; } public BanCo(int soDong, int soCot) { _SoCot = soCot; _SoDong = soDong; } public void VeBanCo(Graphics g) { for (int i = 0; i [...]... điểm đó 6 Trí tuệ nhân tạo cho máy trong cờ caro a Sơ lược về trí tuệ nhân tạo Trí tuệ nhân tạo hay trí thông minh nhân tạo (Tiếng Anh: Artification intelligence thường được viết tắt là AI) là trí tuệ được biểu diễn bởi bất cứ hệ thống nhân tạo nào Thuật ngữ này dùng đển nói đến các máy tính có được trí tuệ của một phần não người, thông qua việc nghiên cứu của các ngành khoa học khiến máy tính có được... được suy nghĩ, suy luận như con người Trí tuệ nhân tạo được chia làm 2 trường phái: Truyền thống và trí tuệ tính toán b Trí tuệ nhân tạo trong cờ Caro Sử dụng cấu trúc cây: Tại lượt đi A, tìm kiếm các nước đi có thể đánh B và C Tính trước các nước D, E tương ứng với B và F, G,H tương ứng với C Tiếp tục tính các nước đi tương ứng với E và M, N tương ứng với I Tương ứng với mỗi nước đi, cần lần lượt quét... System.Linq; System.Text; System.Threading.Tasks; System.Windows.Forms; namespace TroChoiCoCaro { public partial class frmCoCaro : Form { private CaroChess caroChess; private Graphics grs; public frmCoCaro() { InitializeComponent(); btnPlayerVsPlayer.Click += new EventHandler(PvsP); caroChess = new CaroChess(); caroChess.KhoiTaoMangOCo(); grs = pnlBanCo.CreateGraphics(); playerVsComToolStripMenuItem.Click... frmCoCaro_Load(object sender, EventArgs e) { } 20 private void pnlBanCo_Paint(object sender, PaintEventArgs e) { caroChess.VeBanCo(grs); caroChess.VeLaiQuanCo(grs); } private void frmCoCaro_Paint(object sender, PaintEventArgs e) { } private void pnlBanCo_MouseClick(object sender, MouseEventArgs e) { if (!caroChess.SanSang) return; if (caroChess.CheDoChoi == 1) { caroChess.DanhCo(e.X, e.Y, grs); if (caroChess.KiemTraChienThang())... caroChess.DanhCo(e.X, e.Y, grs); if (caroChess.KiemTraChienThang()) { caroChess.KetThucTroChoi(); return; } } if (caroChess.CheDoChoi == 2) { caroChess.DanhCo(e.X, e.Y, grs); caroChess.KhoiDongComputer(grs); if (caroChess.KiemTraChienThang()) { caroChess.KetThucTroChoi(); return; } } } private void PvsP(object sender, EventArgs e) 21 { grs.Clear(pnlBanCo.BackColor); caroChess.StartPlayerVsPlayer(grs); } private void... Player vs Player và Player vs Com Trò chơi hỗ trợ được 2 người chơi với nhau và người chơi đánh với máy Ngoài ra còn có các chức năng như Undo, Redo để chơi lại và khôi phục lại nước đi Để chơi với 2 người người chơi có thể ấn vào nút “Player vs Player” hoặc vào File  New  Player vs Player Để giành được chiến thắng thì người chơi phải tạo được 1 dãy 5 con liên tiếp cùng màu theo 1 phương bất kỳ (dọc,... grs.Clear(pnlBanCo.BackColor); caroChess.StartPlayerVsCom(grs); } private void undoToolStripMenuItem_Click(object sender, EventArgs e) { //grs.Clear(pnlBanCo.BackColor); caroChess.Undo(grs); } private void redoToolStripMenuItem_Click(object sender, EventArgs e) { caroChess.Redo(grs); } private void btnNewGame_Click(object sender, EventArgs e) { grs.Clear(pnlBanCo.BackColor); caroChess.VeBanCo(grs); } private... Application.Exit(); } } } 22 6 Form1.cs [Design] 7 Form1.Designer.cs namespace TroChoiCoCaro { // Code tự sinh trong quá trình tạo } 8 Program.cs 23 using using using using using using System; System.Collections.Generic; System.Drawing; System.Linq; System.Threading.Tasks; System.Windows.Forms; namespace TroChoiCoCaro { static class Program { } /// /// The main entry point for the application... Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new frmCoCaro()); } } 24 TÀI LIỆU THAM KHẢO -Hướng dẫn lập trình C# nâng cao – MinhDangThanh’blog http://minhdangthanh.wordpress.com/l%E1%BA%ADp-trinh-c-nang-cao/ -Bài giảng hướng dẫn lập trình c# căn bản, lập trình c# nâng cao của anh Lê Nguyễn Anh Huy 25 ... quét các hướng: 12 Lần lượt duyệt các hướng và tính toán cả việc tấn công và phòng ngự có lợi ở nước đó Dùng 2 mảng để lưu trữ điểm tấn công và phòng ngự: - Điểm tấn công = {0, 9, 54, 162, …} Điểm phòng ngự = {0, 3, 27, 99, …} Theo hướng đó có bao nhiêu quân thì ta cộng vào bấy nhiêu điểm tấn công hay phòng ngự và ngược lại Lặp lại với các nước con có thể đánh ở lượt sau C Giao diện và cách chơi 1 Giao ... Trí tuệ nhân tạo cho máy cờ caro a Sơ lược trí tuệ nhân tạo Trí tuệ nhân tạo hay trí thông minh nhân tạo (Tiếng Anh: Artification intelligence thường viết tắt AI) trí tuệ biểu diễn hệ thống nhân. .. lý thắng thua……………………………………………………… 12 Trí tuệ nhân tạo cho máy cờ Caro …………………………… 12 a Sơ lược trí tuệ nhân tạo ……………………………………… 13 b Trí tuệ nhân tạo cờ Caro ……………………………………13 Giao diện cách chơi……………………………………………………... Truyền thống trí tuệ tính toán b Trí tuệ nhân tạo cờ Caro Sử dụng cấu trúc cây: Tại lượt A, tìm kiếm nước đánh B C Tính trước nước D, E tương ứng với B F, G,H tương ứng với C Tiếp tục tính nước

Ngày đăng: 15/01/2016, 21:22

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan