python开源项目之五子棋

概述

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

在这里插入图片描述

特色

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

流程

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

在这里插入图片描述

文件组成

文件说明
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算法.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

falwat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值