java实现五子棋游戏

这篇文章主要为大家详细介绍了java实现简易的五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

java实现五子棋游戏_第1张图片

一、问题分析

java实现五子棋游戏_第2张图片

java实现五子棋游戏_第3张图片

二、模块分析

java实现五子棋游戏_第4张图片

以下是窗体代码

java实现五子棋游戏_第5张图片

java实现五子棋游戏_第6张图片

java实现五子棋游戏_第7张图片

java实现五子棋游戏_第8张图片

以下是鼠标监听器的代码,这里有部分变量没有给出,在文章末尾会附上完整代码

java实现五子棋游戏_第9张图片

2、位置修正

这个功能其实有很多种实现的方法,可以根据自己的棋盘位置啥的进行修正。

java实现五子棋游戏_第10张图片

3、输赢判断

以下是判断输赢的代码。

java实现五子棋游戏_第11张图片

java实现五子棋游戏_第12张图片

java实现五子棋游戏_第13张图片

java实现五子棋游戏_第14张图片

4、我们再来加一点功能,这里有悔棋,重新开始,认输的功能。

重新开始:我们清空我们存放棋子的数组即可,然后重新绘制棋盘,将之前的棋盘覆盖即可。

java实现五子棋游戏_第15张图片

悔棋:悔棋的思路:悔棋,我们可以和开始一样,先把之前的棋盘覆盖掉,然后去除存放数组里的最后一个棋子即可,然后在新的棋盘上重新放下棋子(除了最后一个棋子)。

java实现五子棋游戏_第16张图片

认输功能:这个很简单就不说了,判断一下到谁下点击了认输就谁输就好。

5、最后来一个高级的,实现AI的功能,人机对战。

这里有很多种实现人工智能的方法:

(1)权值法
(2)博弈树
(3)机器学习

博主现在水平有限,只会权值算法,等博主学会后面两种方法再来加~

权值法:这里用到了权值表,创建一个新的二维数组chessvalue[][]用于存放该点的权值。

java实现五子棋游戏_第17张图片

AI代码

java实现五子棋游戏_第18张图片

java实现五子棋游戏_第19张图片

java实现五子棋游戏_第20张图片

java实现五子棋游戏_第21张图片

java实现五子棋游戏_第22张图片

java实现五子棋游戏_第23张图片

java实现五子棋游戏_第24张图片

java实现五子棋游戏_第25张图片

三、总结

本次是第一次做游戏类的项目,仍然存在许多不足,但是很开心最后成功了,然后最后AI部分的权值表以及联合算法借鉴了其他博主的思路,后期我会再加上博弈树算法的思想。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。更多游戏项目请私自行添加

java实现五子棋游戏_第26张图片

 

你可能感兴趣的:(游戏,算法,java,python,编程语言)