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:
- Load Menustrip vào TreeView?
- fix sự kiện không tìm thấy link image thì báo lỗi...!
- Cộng giá trị của DataGridViewColumn trong DataGrigView
- cách sử dụng phuơng thức Sort có sẵn trong Arraylist ?? :-s
- Giúp mình về Extend monitor & Drag Drop position
- Làm sao để dùng hàm SendKeys.SendWait phím Fn của Laptop
- Export to Excell Trong DataGridView C#
- nhóm các control vào groupbox bằng text ediote
- Chuẩn hóa cấu trúc html trong C#
- load hình ảnh từ datafrid view sang picturebox của 1 form khác
-
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
Trong cuộc sống, chúng ta luôn gặp phải những thách thức và trở ngại. Nhưng nhờ có sự hướng dẫn của những người thầy, những người cô, chúng ta mới có thể vượt qua mọi khó khăn và tiến bước trên con...
Thiệp 20 Tháng 11: Nụ Cười và Sự...