Java Swing实现的人机对战三子棋
来源:互联网 发布:excel表格怎么填充数据 编辑:程序博客网 时间:2024/06/11 02:43
1.照例,先来看看运行结果吧。
2.算法思想:
1.普通情况下,当玩家先下时,算法根据当前情况判断自己是否能赢。若可以,则直接选择该情况,否则开始判断玩家是否有可以赢的位置,若有,则堵死玩家,,若仍没有,选择当前最合适的走法,走法较多时,使用随机。这种模式下,依照三子棋必胜算法,人可能下赢电脑。
2.高级AI模式,此时电脑先下,而且占中间位置。三子棋必胜算法内容为:(1)当电脑选择先下并且选择中间位置时,若玩家选择两个对角线的四个位置时,最好结局为平局:(2)当选择上下左右四个位置时,玩家必输,而且走法多样,如下图红叉的位置。
3.算法实现:
1.将上述算法思想用java语言写出来,并将AI部分实现为单个文件,作为工具类,与UI部分分离,以接口形式提供调用,在界面绘制部分只需要一行代码调用即可满足要求。
2.代码实现部分较为通用,为了有一定的可拓展性,主要目的是为了以后同类模式开发,只要传递相应参数,并且在各种不同类游戏下,更改逻辑控制部分,就能时算法框架可以复用。
4.不足之处
1.java swing部分对事件监听,写得较为麻烦,重复代码太多,显得较为恶心,有待改进。
2.程序偶尔出现bug,由于算法主体部分没有问题,已经满足要求了,笔者太懒,没有作出修改,如果有需要,可以自己检查错误,问题也比较简单,横容易就找出来。
5.具体代码下载位置Link
1 0
- Java Swing实现的人机对战三子棋
- java swing实现的人机对战五子棋
- 五子棋人机对战的实现
- 期末课程设计之java实现五子棋的人机和人人对战
- 【java】java swing:五子棋人机对弈
- 五子棋AI图形界面人机对战(JAVA实现)
- AI智能人机对战五子棋(Java实现图形界面)
- Java Swing中实现对table的filter功能
- 百行内实现五子棋人机对战
- JAVA Swing实现的clock
- java五子棋人机对战算法分析
- 对Java 中Swing的小总结
- 五子棋人机对战的心得
- Java swing实现Visio中对直线、曲线、折线的画及拖动删除
- Java swing实现Visio中对直线、曲线、折线的画及拖动删除
- 仅用300行代码实现的智能五子棋人机对战
- JAVA语言实现人机猜拳小游戏
- Android实现五子棋游戏(二) 人机对战实现
- 一加手机刷第三方Recovery、获取Root权限、刷CM教程
- List、Set集合Map集合的遍历
- TCP交互数据流,成块数据流(非原创)
- 腾讯云centos7.2安装mysql
- MAC环境下安装和配置Nginx
- Java Swing实现的人机对战三子棋
- MSET算法
- redis的配置
- 线程间通讯机制——深入浅出实现原理
- 大数据怎么收集?
- Codeforces 727B 字符串处理
- Counterfeit Dollar HDU1482题 FZU1003题 POJ1013题
- 【Android开发】线程间通讯机制(基础篇)——Handler、Runnable、HandlerThread、AsyncTask的使用
- at org.springframework.asm.ClassReader.<init>(Unknown Source)