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算法.
python开源项目之五子棋相关推荐
- GitHub上的“金矿”(236个Python开源项目,涵盖了15个领域)
人生苦短,越来越多的人,都开始用Python了. 但寻找好的项目资源,费时又费力,成了头号难题. 现在,好消息来了.最近,有人在GitHub上放了一座"金矿". 目前里面有236个 ...
- python开源库推荐_推荐5个值得关注的Python开源项目
原标题:推荐5个值得关注的Python开源项目 今天小编看到了五个开源项目,觉得还错,推荐给大家. 1.Wagtail CMS Wagtail是一个基于Django的CMS系统 它拥有优质的用户体验 ...
- python开源项目贡献_通过为开源项目做贡献,我如何找到理想的工作
python开源项目贡献 by Utsab Saha 由Utsab Saha 通过为开源项目做贡献,我如何找到理想的工作 (How I found my dream job by contributi ...
- 9月Python开源项目Top10
原文链接: 9月Python开源项目Top10 - TinyMind https://www.tinymind.cn/articles/3776 声明:转载的, 就是让自己记住,以后熟练了Python ...
- 近万个Python开源项目中精选Top34!
作者 | Mybridge 编译 | 仲培艺 出品 | CSDN(ID:CSDNNews) [导语]踏着人工智能.区块链的东风,近年来一路"横冲直撞"的 Python 在实现了从小 ...
- 2018年Python开源项目Top100!只在这里!
整理 | Jane 出品 | Python大本营 2018 年的最后一天,营长为大家新鲜出炉了一份 2018 年 Python 开源项目 Top100 清单!这些项目都是营长每月通过收集 Mybrid ...
- 精选180+Python开源项目,随你选!做项目何愁没代码
编辑 | Jane 出品 | Python大本营 每一位程序员,每天大部分时间都是在和代码打交道.但是对于广大的普通用户来说,最重要的不是代码,而是代码最终生成的应用程序.但是,每个项目都从头开始自己 ...
- 精选Python开源项目Top10!
作者 | MyBridge 译者 | Linstancy 整理 | Jane 出品 | AI科技大本营 [导读]过去一个月里,我们对近 250 个 Python 开源项目进行了排名,并挑选出热度前 1 ...
- 8月精选Python开源项目Top10
作者 | Mybridge 译者 | linstancy 编辑 | Jane 出品 | AI科技大本营 [导读]过去一个月里,我们对近 250 个 Python 开源项目进行了排名,并挑选出热度前 1 ...
- Python 开源项目 Top 10 精选(平均star为1128)
翻译 | SuiSui 最近,Mybridge对250个Python开源项目进行了排名,从中精选出了Top 10.这些开源项目平均star为1128,内容包括Python新利器Pipenv, 自组织映 ...
最新文章
- 大话设计模式之装饰模式
- 类欧几里得(模板题推导)
- java dom no protocol_DOM
- 11纯代码 oc xcode_iOS代码染色原理及技术实践
- Python学习入门5:Python到底应该怎么学?
- 开发者日记级别哪个好_什么是开发者日记?
- [浪风JQuery开发]jquery最有意思的IFrame类似应用--值得深入研究
- 国家对五险一金的交纳说明
- 《AMNet: Deep Atrous Multiscale Stereo Disparity Estimation Networks》
- 使用git命令打补丁
- 你知道 DNS,那我猜你一定不知道 HTTPDNS
- Python编写程序计算如下的分段函数
- ubuntu16.04,解决桌面右键菜单失效问题!
- 今天咱爬点不一样的!获取华为应用商店app信息!
- 【2021】网络协议从入门到底层原理-MJ【新】附上下载链接
- 矩阵归一化的处理原理和方法
- 安卓移动办公软件_移动办公软件,是让老板喜欢还是员工喜欢?
- 从0到1使用ES实现昼伏夜出算法(环境搭建到页面效果)
- 【IoT】10.Product Development Innovation 产品开发 · 创新
- 非极大值抑制(nms)算法详解[python]