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:
- Tạo dòng chữ chạy trên nền Winform.Giúp mình.
- [Mô hình MVVM-WPF]Viết thêm thuộc tính cho control sau đó tạo thành dll để sử dụng
- Xử lý khoảng màu da người ( RGB ) khi nhận diện mặt người trong ảnh?
- Mọi người cho mình hỏi về cách chuyển động của một đối tượng trong c#
- Hẹn giờ làm việc của một chương trình trong lập trình C#?
- check email trong project quản lý sinh viên
- chương trình có duyệt qua hết code rồi mới bắt đầu chạy không????
- Cách tạo combobox column trong Gridcontrol của devexpress
- [Broadcast Webcam] Hiển thị hình ảnh Webcam trực tiếp từ máy khác
- Tạo ra 1 class lấy dữ liệu dùng chung trong C# như bên VB.net?
-
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
Pallet nhựa Lâm Đồng giải pháp hoàn hảo cho nhà kho Pallet nhựa Lâm Đồng là một giải pháp đa năng và hiệu quả trong việc vận chuyển và lưu trữ hàng hóa. Trong đó, pallet nhựa Lâm Đồng không chỉ đáp...
Pallet nhựa Lâm Đồng giải pháp...