资源简介
井子棋是棋类中最简单的一种,通常作为算法的练手项目,该资源使用极小极大算法实现了一个井字棋的人机对弈,只需运行资源里的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
评论
共有 条评论