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,由于算法主体部分没有问题,已经满足要求了,笔者太懒,没有作出修改,如果有需要,可以自己检查错误,问题也比较简单,横容易就找出来。

1 0
原创粉丝点击