今天小编就为大家分享一篇关于Java五子棋AI实现代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
2022-10-06 20:28:33 84KB java五子棋 java五子棋ai实现代码
1
五子棋--两人参与,先五为胜的棋类游戏。所以,先五为胜是任何五子棋规则的第一条规则,因为如果这也修改了那么就是其他棋种了
2022-09-19 14:00:26 168KB java五子棋 了java五子棋
用javafx编写的一个简单的人机博弈程序
2022-08-31 00:03:24 35KB java五子棋
1
基本Java的五子棋设计与实现,毕业设计,含人机对战和网络对战两种模式,含毕业论文
1
GUI版Java五子棋源码,可人机对战,是个非常不错的代码!
1
单机版java五子棋V1.1源代码资料
2022-06-07 18:02:39 9KB java 文档资料 开发语言
操作系统:win10家庭版 JDK版本:jdk-11.0.1 开发环境:IntelliJ IDEA ①界面美观:按钮以流式布局分布在程序右边,通过点击进行基本操作。 ②可两人对下:使用鼠标监听器和15*15的二维数组表示棋盘上棋子的状态。 ③判断输赢:每次根据下棋位置更新二维数组后对齐进行行、列、斜的判断,当存在五子连珠时弹出窗口,根据一系列状态变量判断黑方/白方获胜。 ④认输:根据当前轮到某一方下棋判断另一方获胜。 ⑤合理性判断:对不恰当操作进行提示,例如当鼠标点击位置已有棋子或鼠标点击位置超出棋盘过多时会进行弹窗提示。当游戏胜负已分时再点击“悔棋”,“认输”按钮时也会进行弹窗提示。 ⑥悔棋:使用两个动态数组储存每一次下棋的x、y坐标,悔棋时对两个非空二维数组进行弹出,根据得到的上一步的坐标删除该坐标在棋盘数组上对应的存在状态,并重绘棋盘,更新状态变量等。 ⑦人机对战:经测试,根据网上现有的效果较好的评分表制定了一套“五元组”评分准则,即棋盘是15*15的。那么应该是572个五元组(五个可形成五子连珠的位置)。同时,针对五元组中黑子和白子的数量的不同,给该五元组评不同的分。棋盘上15*15个位置中每一个位置的得分就是包含这个位置的所有五元组的得分加和。从而在人每次下一手棋子时,程序自动遍历整个棋盘,算出所有位置中得分最大的那个位置进行下棋。
2022-06-06 16:13:22 2.97MB java 五子棋 人机对战 课程设计
1
java开发的五子棋,界面友好,人机对弈,GUI写的,欢迎下载,只需要2积分
2022-05-17 14:01:50 1.01MB java 五子棋 GUI
1
java五子棋 五子棋 java 五子棋代码直接和电脑下对战 Public class FiveChessAI { public int data_a[][] = new int[5][3];// 用于储存进攻值 public int data_d[][] = new int[5][3];// 用于储存防守值 FiveChessAI() { // 进攻值的初始化 data_a[1][1] = 2; data_a[1][2] = 3; data_a[2][1] = 10; data_a[2][2] = 110; data_a[3][1] = 2500; data_a[3][2] = 3000; data_a[4][1] = 99999; data_a[4][2] = 99999; // 防守值的初始化 data_d[1][1] = 1; data_d[1][2] = 2; data_d[2][1] = 1; data_d[2][2] = 100; data_d[3][1] = 100; data_d[3][2] = 500; data_d[4][1] = 20000; data_d[4][2] = 50000; } public FiveChessMap g1 = new FiveChessMap(); public int x, y; void find()// 查找最大值 { int max = 0; for (int i = 0; i < 15; ++i) { for (int j = 0; j < 15; ++j) { if (max < g1.data[i][j]) { max = g1.data[i][j]; } } } for (int i = 0; i < 15; ++i) { for (int j = 0; j < 15; ++j) { if (max == g1.data[i][j]) { x = i; y = j; return; } } } } int getx()// 返回x坐标值 { return x; } int gety()// 返回y坐标值 { return y; } boolean judge_result(int x, int y, int who, FiveChessMap gm)// 判断胜负 { int m, n, i, lianzi = 0; for (m = -1; m <= 1; m++) for (n = -1; n <= 1; n++) { if (m != 0 || n != 0) { for (i = 1; i <= 4; i++) { if (x + i * m >= 0 && x + i * m < 15 && y + i * n >= 0 && y + i * n < 15 && gm.data[x + i * m][y + i * n] == who) { lianzi++; } else { break; } } for (i = -1; i >= -4; i--) { if (x + i * m >= 0 && x + i * m < 15 && y + i * n >= 0 && y + i * n < 15 && gm.data[x + i * m][y + i * n] == who) { lianzi++; } else { break; } } if (lianzi >= 4) { return true; } else { lianzi = 0; } } } return false; }
2022-05-17 13:43:53 301KB java五子棋 五子棋 java 五子棋代码
1
毕业论文-源代码- 人机对战的Java五子棋(程序源代码)论文字数:15361字.zip
2022-05-17 09:05:17 380KB java 源码软件 开发语言