栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python开源项目之五子棋

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python开源项目之五子棋

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

概述

本项目实现了一个带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算法.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/951791.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号