星辰闪耀星空棋,璀璨洒满宇宙间。
Java编织智慧谱,FindYou翩舞奇妙规。
黑白对弈纵横展,人机较量激荡心。
星光指引胜利路,创造奇迹指尖舞。
效果图:
日志:
2023/12/17
今天去网上学了一下AI下五子棋的算法,有 极小化极大算法(Minimax)+ Alpha-Beta剪枝算法,这两个算法看视频理解起来还是可以的 但是写代码的时候 脑子还是跟不上,然后就写了一个简单的估值的方法,虽然听起来简单,但是代码是真的多,调代码还不好调..... 但是它的胜率还是可以的了,和他下了10盘,就赢了1局 但是还是比较菜的 后期再去跟着别人学一下更好的算法吧
bug:
黑子在竖着的时候出现5个棋的时候 并没有显示胜利,这是什么情况......
2023/12/18 0:03 黑子竖着的时候出现5个子已被修复
bug: 队友测试出来的bug:
- 当棋子下的没有规律且分散时,人机的棋子也没有规律(算法的问题)
- 当我方连成三枚棋子时,无论有没有已经被堵住一边,都会去堵,所有可以根据这个bug获得胜利,即落下的棋子满足刚好连成两对三个棋子,其中一个两边都没有白棋,即有概率获胜
增加的功能:
- 对游戏添加了落子的声音,也就是当落子的时候,会播放下载好的音频,注意需要把mp3转换为wav的形式,在线转换网站:MP3轉WAV轉換器。在线自由 — Convertio 添加音频参考的链接:https://blog.csdn.net/qq_51901495/article/details/122385014
- 添加了菜单栏,关于我们 联系我们
打赏等 还等完善
2023/12/19:
问题:
- 被队友嘲笑 写的五子棋太笨了(算法的问题)
- 对游戏的开始还需要优化
3. 悔棋的时候,人机对战的时候,点了一下,却悔了2步
4. 显示落子的顺序也出现了问题 bug是越改越多啊
5:下过的棋,再次下的时候,会出现下棋的声音(加个特判 就可以修复)
6: 人和ai下棋的时候,人先手的时候,出现的是白棋,但是应该是黑棋
准备增加的功能:
- 另外一个队友开始写 登录 和 注册 页面
更改:
之前ai下棋无规律的bug是因为 当用户下棋下的乱的时候, 我用的是随机去下的 这样胜率比较小 ,去网上查了一下,加一个position[][] 让ai下棋下的不那么随机 要求集中 这样ai的胜率会更大点
算法的改进:
用估值的方法,先把每个情况都给模拟出来,比如:连五、活四、冲四...... 然后给其每个都进行赋值对应的分数,然后枚举每个还没下棋的位置,看看这个位置,要是别人下和自己下带来的分数是多大,把全部情况都给插入到数组里面 然后返回的是最大的(防御分数+威胁分数) 这个最大的就是ai将要下的 枚举的时候枚举八个方向,以当前这个点往这八个方向扩,用字符串把这个信息给存起来,参考算法博客:Java 五子棋AI 算法及实现 详细解析-CSDN博客
增加:
增加了胜利或者是失败之后的 声音 和 背景图片 ,但是点击退出的时候,整个程序都退出了,这是怎么回事?
2023/12/21:
准备新增:(已经实现)
把对手或者是自己胜利的话,棋盘上要连上一个线,让别人或者是自己清楚自己哪里赢了,自己哪里输了 输 不丢人 怕 才丢人
实现:
1:当人和ai下棋胜利时候,会出来背景图片,以及背景音乐,胜利的号角
当人和ai下棋 下输的时候会出现以下的背景图片以及背景音乐,失败
bug修复:
1.如果胜利或者是输的时候,会弹出来一个页面 让用户明白是赢了还是失败了,但是一点击就没了,原因是setDefaultCloseOperation里面的参数设置错了,现在已经修复
2.显示落子的顺序也已经修复
犹豫的新增:
是否增加背景音乐,背景音乐声音太吵,会不会影响下棋时候的思路,而且落子的声音也被盖住了
解决方法1:
在菜单里面加一个设置(太麻烦了) 可以关闭音乐
解决方法2:
把背景音乐的音量调的小一点,把落子的声音大一点(感觉这个还行)
2023/12/27
bug:
上一局的结果照成的连线会对下一局照成干扰.
修复:
重新开始游戏之后,把画线的起点startX startY和终点endX endY全部置为0就可以清空了;
2023/12/31
增加:
队友实现了登录界面的完成,以及对登录账号和密码的检测
2024/1/7
增加:
背景音乐的设置 可开 可关
2014/1/10:
增加:
数据的存储由本地存储改为 操作云端服务器里面的数据库,实现持久化存储
需要源码的话 私信哈