{"id":13713244,"url":"https://github.com/lihongxun945/gobang","last_synced_at":"2025-05-15T15:04:04.610Z","repository":{"id":48725365,"uuid":"50583936","full_name":"lihongxun945/gobang","owner":"lihongxun945","description":"javascript gobang AI，JS五子棋AI，源码+教程，基于Alpha-Beta剪枝算法（不是神经网络）","archived":false,"fork":false,"pushed_at":"2024-10-01T05:24:33.000Z","size":13331,"stargazers_count":1716,"open_issues_count":43,"forks_count":384,"subscribers_count":35,"default_branch":"master","last_synced_at":"2025-04-04T11:47:02.373Z","etag":null,"topics":["ai","gobang","gomoku","javascript"],"latest_commit_sha":null,"homepage":"https://gobang2.light7.cn/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lihongxun945.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-01-28T13:15:14.000Z","updated_at":"2025-04-02T03:34:45.000Z","dependencies_parsed_at":"2022-09-10T23:31:41.592Z","dependency_job_id":"42146504-0332-439e-9e0f-1c9a2e38cf61","html_url":"https://github.com/lihongxun945/gobang","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lihongxun945%2Fgobang","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lihongxun945%2Fgobang/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lihongxun945%2Fgobang/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lihongxun945%2Fgobang/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lihongxun945","download_url":"https://codeload.github.com/lihongxun945/gobang/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248478160,"owners_count":21110648,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","gobang","gomoku","javascript"],"created_at":"2024-08-02T23:01:30.581Z","updated_at":"2025-04-11T20:38:44.758Z","avatar_url":"https://github.com/lihongxun945.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","Open-Source Projects"],"sub_categories":["Gomoku Projects"],"readme":"## 五子棋AI\n\n✨🎉🎉🎉✨ 2023/11 重写了全部代码，代码更加简洁易懂，并修复了之前存在的AI可能会偶尔走错棋的问题，棋力更加稳定，React也更新到了最新的V18版本。\n\n***本仓库代码仅供个人业余研究AI用，代码肯定存在有很多不完善的地方，精力和专业所限请谅解***\n\n![二维码](./images/gobang2.png)\n\n极小化极大算法的五子棋AI实现。 扫描上方二维码，或者打开此页面可以直接体验 [https://gobang2.light7.cn/](https://gobang2.light7.cn/) 如果 `http` 协议无法打开，可以用这个http的链接 [http://gobang2.light7.cn/](http://gobang2.light7.cn/)\n\n![截图](./images/ss.png)\n\n如果你对机器学习、神经网络有兴趣，这里有一个基于Alpha Zero原理的AI [alpha-zero-gobang](https://github.com/lihongxun945/alpha-zero-gobang) 正在开发中，Tensorflow2.x实现，有兴趣的可以关注交流。\n\n## 一些常见问题\n- Q：AI的原理是什么？\n- A：参考后文中我的博客。基本原理是极小化极大搜索算法，做了一些常见的性能优化。没有用到神经网络、强化学习之类的机器学习算法。\n- Q：为什么感觉AI的棋力不强？\n- A：这个AI是极小化极大算法，做了有限的优化，并且受限于浏览器执行JS的速度，其搜索的深度比较浅，所以棋力不会很强。\n- Q：不同难度有啥区别？\n- A：不同难度的区别在于搜索的深度，AI的搜索深度越深，棋力越强，相应的耗时也会变长。\n- Q：需要联网吗？\n- A：第一次打开页面或者刷新需要联网，但AI的执行是本地的，因此只要页面打开之后，就不需要联网了。\n- Q：为啥感觉电脑走棋很慢？\n- A：这个AI是本地浏览器执行的，AI的速度受硬件性能影响比较大，并且难度越高，搜索的深度越深，耗时越长。如果发现耗时过长，可以降低难度。\n- Q：AI涉及到的算法是你原创的吗？\n- A：并不是我原创的，绝大部分都是网络上公开的算法，我只是把它们组合起来，并做了一些有限的优化。\n\n## 联系方式\n\n需要交流的同学可以加QQ群 `622613966`,进群验证信息请填写 `gobang`\n\n## 更新日志\n\n- 2023/11/23 更新：V3版本重写了所有代码，现在代码更加简洁易懂，并修复了之前存在的AI可能会偶尔走错棋的问题，棋力更加稳定。\n- 2020/11/29 更新: 修复了评分的明显bug，随机开局库可配置，网站已修复，可以愉快玩耍了\n\n## 教程\n我写了一个系列博客，教你如何一步步编写自己的五子棋AI：\n\n- [五子棋AI设计教程第二版一：前言](https://github.com/lihongxun945/myblog/issues/11)\n- [五子棋AI设计教程第二版二：博弈算法的前世今生](https://github.com/lihongxun945/myblog/issues/12)\n- [五子棋AI设计教程第二版三：极小化极大值搜索](https://github.com/lihongxun945/myblog/issues/13)\n- [五子棋AI设计教程第二版四：Alpha Beta 剪枝算法](https://github.com/lihongxun945/myblog/issues/14)\n- [五子棋AI设计教程第二版五：启发式评估函数](https://github.com/lihongxun945/myblog/issues/15)\n- [五子棋AI设计教程第二版六：迭代加深](https://github.com/lihongxun945/myblog/issues/16)\n- [五子棋AI设计教程第二版七：Zobrist缓存](https://github.com/lihongxun945/myblog/issues/17)\n- [五子棋AI设计教程第二版八：算杀](https://github.com/lihongxun945/myblog/issues/18)\n- [五子棋AI设计教程第二版九：性能优化](https://github.com/lihongxun945/myblog/issues/19)\n\n注意教程中的代码与代码仓库的有一定区别，但原理是一样的。作者本着开源分享的精神，知道的都写出来，没有任何保留，如有遗漏或错误可以提issue。\n\n\n## 安装依赖\n本仓库是一个纯前端仓库，AI也是用JS写的，所以本地开发必须安装Node和NPM。Node版本没有完善测试过，但理论上 v16~20 应该都可以。\n\n先执行 `npm install` 安装依赖。然后有如下命令可用：\n\n- `npm start` 启动本地开发服务\n- `npm test`  运行单元测试\n- `npm run js` 编译JS\n- `npm run less` 编译less\n- `npm run watch` 进入watch模式 自动编译文件\n- `npm run build` 编译生成dist目录\n\n## 关于作者\n大厂前端工程师，曾（现）任职百度、阿里、字节等公司，业务时间会研究一些和工作无关的技术。","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flihongxun945%2Fgobang","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flihongxun945%2Fgobang","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flihongxun945%2Fgobang/lists"}