Chủ đề: Thuật giải minimax
-
05-07-2016, 11:40 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Thuật giải minimax
Em đang mày mò về thuật giải minimax để làm game tic tac toe (caro 3 con)
Em tìm trên mạng thì thấy đoạn code này:
Mã:namespace TicTacToeGame { class AIPlay { public static Space BestMove(GameBoard gb, player p) { Space? bestSpace = null; List<Space> openSpaces = gb.openSquares; GameBoard newBoard; for (int i = 0; i < openSpaces.Count; i++) { newBoard = gb.Clone(); Space newSpace = openSpaces[i]; newBoard[newSpace.x, newSpace.y] = p; if (newBoard.Winner == player.Open && newBoard.openSquares.Count > 0) { Space tmpMove = BestMove(newBoard, ((player)(-(int)p))); newSpace.rank = tmpMove.rank; } else { if (newBoard.Winner == player.Open) newSpace.rank = 0; else if (newBoard.Winner == player.X) newSpace.rank = -1; else if (newBoard.Winner == player.O) newSpace.rank = 1; } if (bestSpace == null || p == player.X && newSpace.rank < ((Space)bestSpace).rank || p == player.O && newSpace.rank > ((Space)bestSpace).rank) { bestSpace = newSpace; } } return (Space)bestSpace; }
Em xin hỏi các bác:
1. Vì sao phải dùng (-int).
2. Cây trò chơi được khởi tạo như thế nào?
3. Vì sao máy tính luôn chọn được nước đi ngay tức khắc? (Ví dụ: Lúc bắt đầu trò chơi, em đi O ở ô [1,1] thì máy sẽ đi ngay ô [0,0]. Còn nếu em đi ô [2,1] máy sẽ đi ngay ô [0,1]. [x,y] ở đây là tọa độ ô, x ngang y dọc).
Lý thuyết về minimax thì em có đọc và cũng hiểu. Làm phiền các bác giảng giải giúp em về đoạn code trên ạ.
Em cảm ơn các bác.View more random threads:
- Print listview trong C# như thế nào?
- Hướng dẫn dùng lệnh SaveFileDialog
- Cách xử lý các form đăng nhập trong C#?
- Hỏi:Object reference not set to an instance of an object
- Làm sao để tạo một listBox luôn nổi lên trên PictureBox?
- Disable chức năng richTextBox tự bỏ khoảng trắng?
- Cách focus treenode trên treeview trong C#?
- datagirdview không hiển thị nội dung cột khi thay đổi datasource?
- Thêm mã id number tự động tăng 1 đơn vị trong class c#
- Làm sao thiết lập lại biến static cho các control đã dùng tool
-
05-07-2016, 11:50 AM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Khi chơi caro, người chơi chọn phương án sao có được 2 hàng 3, hai hàng 3-4 để quyết thắng
-
05-07-2016, 12:12 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi CoViet-Plus005
-
05-07-2016, 12:44 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Bạn chơi caro rồi chứ, nếu bạn có phương án khác không ?
Trên là tìm giao lộ để có 2 hàng 3, 2 hàng 3-4
-
05-07-2016, 12:48 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi CoViet-Plus005
-
05-07-2016, 12:55 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Xin lỗi : mắt kém không nhận thấy số 3
-
05-07-2016, 01:06 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi CoViet-Plus005
-
05-07-2016, 01:13 PM #8Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Lúc khác, mới quê độ sao tỉnh táo được !
Giải thích, cần có thêm, cả project chẳng hạn
Nhớ trong Java có code demo caro 3 (TicTacToe) đó. Máy PC đang dùng lại không cài Java / JDK
Ngọc Bích xanh bản chất thuộc dòng đá đá hoa (jade). Và cẩm thạch là tên gọi chung của ngọc bích. Vì thực chất chúng thuộc dòng đá đa khoáng được hình thành từ chất Silicat dưới dạng dioxy. Ngọc bích...
Chia sẻ Vòng tay ngọc bích xanh là...