目录

  • 概述
    • 特色
    • 流程
    • 文件组成
  • 关于嵌入你的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开源项目之五子棋相关推荐

  1. GitHub上的“金矿”(236个Python开源项目,涵盖了15个领域)

    人生苦短,越来越多的人,都开始用Python了. 但寻找好的项目资源,费时又费力,成了头号难题. 现在,好消息来了.最近,有人在GitHub上放了一座"金矿". 目前里面有236个 ...

  2. python开源库推荐_推荐5个值得关注的Python开源项目

    原标题:推荐5个值得关注的Python开源项目 今天小编看到了五个开源项目,觉得还错,推荐给大家. 1.Wagtail CMS Wagtail是一个基于Django的CMS系统 它拥有优质的用户体验 ...

  3. python开源项目贡献_通过为开源项目做贡献,我如何找到理想的工作

    python开源项目贡献 by Utsab Saha 由Utsab Saha 通过为开源项目做贡献,我如何找到理想的工作 (How I found my dream job by contributi ...

  4. 9月Python开源项目Top10

    原文链接: 9月Python开源项目Top10 - TinyMind https://www.tinymind.cn/articles/3776 声明:转载的, 就是让自己记住,以后熟练了Python ...

  5. 近万个Python开源项目中精选Top34!

    作者 | Mybridge 编译 | 仲培艺 出品 | CSDN(ID:CSDNNews) [导语]踏着人工智能.区块链的东风,近年来一路"横冲直撞"的 Python 在实现了从小 ...

  6. 2018年Python开源项目Top100!只在这里!

    整理 | Jane 出品 | Python大本营 2018 年的最后一天,营长为大家新鲜出炉了一份 2018 年 Python 开源项目 Top100 清单!这些项目都是营长每月通过收集 Mybrid ...

  7. 精选180+Python开源项目,随你选!做项目何愁没代码

    编辑 | Jane 出品 | Python大本营 每一位程序员,每天大部分时间都是在和代码打交道.但是对于广大的普通用户来说,最重要的不是代码,而是代码最终生成的应用程序.但是,每个项目都从头开始自己 ...

  8. 精选Python开源项目Top10!

    作者 | MyBridge 译者 | Linstancy 整理 | Jane 出品 | AI科技大本营 [导读]过去一个月里,我们对近 250 个 Python 开源项目进行了排名,并挑选出热度前 1 ...

  9. 8月精选Python开源项目Top10

    作者 | Mybridge 译者 | linstancy 编辑 | Jane 出品 | AI科技大本营 [导读]过去一个月里,我们对近 250 个 Python 开源项目进行了排名,并挑选出热度前 1 ...

  10. Python 开源项目 Top 10 精选(平均star为1128)

    翻译 | SuiSui 最近,Mybridge对250个Python开源项目进行了排名,从中精选出了Top 10.这些开源项目平均star为1128,内容包括Python新利器Pipenv, 自组织映 ...

最新文章

  1. 大话设计模式之装饰模式
  2. 类欧几里得(模板题推导)
  3. java dom no protocol_DOM
  4. 11纯代码 oc xcode_iOS代码染色原理及技术实践
  5. Python学习入门5:Python到底应该怎么学?
  6. 开发者日记级别哪个好_什么是开发者日记?
  7. [浪风JQuery开发]jquery最有意思的IFrame类似应用--值得深入研究
  8. 国家对五险一金的交纳说明
  9. 《AMNet: Deep Atrous Multiscale Stereo Disparity Estimation Networks》
  10. 使用git命令打补丁
  11. 你知道 DNS,那我猜你一定不知道 HTTPDNS
  12. Python编写程序计算如下的分段函数
  13. ubuntu16.04,解决桌面右键菜单失效问题!
  14. 今天咱爬点不一样的!获取华为应用商店app信息!
  15. 【2021】网络协议从入门到底层原理-MJ【新】附上下载链接
  16. 矩阵归一化的处理原理和方法
  17. 安卓移动办公软件_移动办公软件,是让老板喜欢还是员工喜欢?
  18. 从0到1使用ES实现昼伏夜出算法(环境搭建到页面效果)
  19. 【IoT】10.Product Development Innovation 产品开发 · 创新
  20. 非极大值抑制(nms)算法详解[python]

热门文章

  1. beyond compare 对class文件反编译及比较
  2. 【vue 四级联动】
  3. msys2+mingw64+ragel安装
  4. STC 芯片编写串口数据方法。
  5. 手把手教你绘制最基础的列线图
  6. python解压zip到当前目录_Python 解压缩Zip和Rar文件到指定目录
  7. CPU的使用率和负载的区别
  8. sql根据经纬度计算距离
  9. 微信群管理机器人免费、破解版
  10. Opencv 下载驿站