python开源项目之五子棋

目录

  • 概述
    • 特色
    • 流程
    • 文件组成
  • 关于嵌入你的AI算法

概述

本项目实现了一个带GUI的五子棋程序, 源码可以从github获取. 除此之外, 源码目录下还有一个命令行式的五子棋代码.

python开源项目之五子棋_第1张图片

特色

  • 界面使用tkinter设计;
  • 提供了一个简单的Minxmax博弈算法;
  • 游戏双方均可设置为通过鼠标人工下子;
  • 游戏双方均可设置为AI下子;
  • 游戏支持自动重复开局(方便测试AI算法);
  • 方便嵌入其他算法;

流程

  • 运行gobang.py, 启动程序;
  • 点击菜单"Option", 切换"player 0"和"player 1"使用的算法. “player 0” 执黑子(先手), "player 1"执白子(后手), 其中, "ManualAgent"为人工下子(通过鼠标左键点击), "RandomAgent"为随机在界面空白位置下子, “Minimax"为 采用极大极小值算法. 默认都为"人工下子”.
  • 如果需要重复开始游戏(用于测试算法性能), 选择菜单"Game| repeat"中的重复次数, 默认不重复.
  • 点击菜单"Game| Start", 开始游戏.
  • 在游戏过程中, 可以点击菜单"Game|Restart", 重启游戏.

python开源项目之五子棋_第2张图片

文件组成

文件 说明
agent.py 包含 Agent meta类
gobang_cli.py 命令行式的五子棋程序.
gobang.py 主要包含带GUI的五子棋类Gobang, 该类继承自mainwindow.Mainwindow.
mainwindow.py 包含主窗体类Mainwindow.
minimax.py 极大极小值算法类Minimax定义, 该类继承自agent.Agent
random_agent.py 随机下棋的agent类RandomAgent, 该类继承自agent.Agent
utils.py 工具类和函数. 包含检查是否获胜的check函数, 棋盘显示函数show_board, 以及表示棋子的枚举类Piece.

关于嵌入你的AI算法

你可以很容易地嵌入你的AI算法. 所有AI算法应该继承自 agent.Agent 类, 可以参考 random_agent.RandomAgent类 和 minimax.Minimax类的设计. 然后将你的AI算法添加到 gobang.py中的player_agents 列表即可.

期待您通过github分享您的AI算法.

你可能感兴趣的:(opensource,python,python,五子棋)