资源简介

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


评论

共有 条评论

相关资源