資源簡介
井子棋是棋類中最簡單的一種,通常作為算法的練手項目,該資源使用極小極大算法實現了一個井字棋的人機對弈,只需運行資源里的play_to_bot就可以在命令行里與AI對弈了,可以肯定的是你絕對不可能戰勝它。雖然實現它比較容易,但是麻雀雖小,五臟俱全,棋類的基本框架類似,你可以在學習這個之后遷移到其他棋類
代碼片段和文件信息
import?copy
from?dlgo.jing_zi_qi.types?import?Player?Point
__all__?=?[
????‘Board‘
????‘GameState‘
????‘Move‘
]
class?IllegalMoveError(Exception):
????pass
BOARD_SIZE?=?3
ROWS?=?tuple(range(1?BOARD_SIZE?+?1))
COLS?=?tuple(range(1?BOARD_SIZE?+?1))
#?Top?left?to?lower?right?diagonal
DIAG_1?=?(Point(1?1)?Point(2?2)?Point(3?3))
#?Top?right?to?lower?left?diagonal
DIAG_2?=?(Point(1?3)?Point(2?2)?Point(3?1))
class?Board:
????def?__init__(self):
????????self._grid?=?{}
????def?place(self?player?point):
????????assert?self.is_on_grid(point)
????????assert?self._grid.get(point)?is?None
????????self._grid[point]?=?player
????@staticmethod
????def?is_on_grid(point):
????????return?1?<=?point.row?<=?BOARD_SIZE?and?\
????????????1?<=?point.
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3453??2020-01-14?19:14??jing_zi_qi\board.py
?????文件???????2318??2020-01-14?19:24??jing_zi_qi\minimax.py
?????文件???????1419??2020-01-14?19:27??jing_zi_qi\play_to_bot.py
?????文件????????394??2020-01-14?19:14??jing_zi_qi\types.py
?????文件?????????72??2020-01-14?19:20??jing_zi_qi\__init__.py
?????文件???????4302??2020-01-14?19:22??jing_zi_qi\__pycache__\board.cpython-37.pyc
?????文件???????1681??2020-01-14?19:28??jing_zi_qi\__pycache__\minimax.cpython-37.pyc
?????文件????????849??2020-01-14?19:22??jing_zi_qi\__pycache__\types.cpython-37.pyc
?????文件????????227??2020-01-14?19:22??jing_zi_qi\__pycache__\__init__.cpython-37.pyc
?????目錄??????????0??2020-01-14?19:30??jing_zi_qi\__pycache__
?????目錄??????????0??2020-01-14?19:30??jing_zi_qi
-----------?---------??----------?-----??----
????????????????14715????????????????????11
- 上一篇:iic——LM75A
- 下一篇:ADASISv2_.zip
評論
共有 條評論