栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

用Java实现简单的AI五子棋对弈

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用Java实现简单的AI五子棋对弈

声明:这是一个简单的AI程序,不涉及高级算法和博弈等知识。

工具:HashMap

思路:为实现一个简单的AI,我们可以根据棋形的不同设置权值的不同大小。用0表示空位,1黑棋,2白棋。例如:“010”表示一个黑棋且它的两端没有棋子,“02222”表示四颗相连的白子且它们的右边是边界(或黑子),左边是空位。“010”的权值低而“02222”的权值高。遍历棋盘上每一个没有棋子的交叉点,取最大值便是AI选择的下棋位置。

流程:创建一个AI类,在该类里创建一张二维数组表(用来测试权值是否正确、是否少写了Key等)、一张二维数组表(用于存放每个点的权值)、HashMap并赋值、成员方法(接受一个二维数组)、成员变量r(行)c(列)等。先遍历数组找出为0的点坐标,然后每一个点向周围八个方向搜索得到Key值,再对存放权值的二维数组表遍历,找出其中最大的点的行列值赋给成员变量r、c。最后回到MyListener中将每一次的鼠标行为后都将存放棋子的二维数组传给AI类的方法得到最值点,画在棋盘上即可。在前面MyListener中的悔棋处可将“count--”改成“count-=2”以达到一次悔两步棋的目的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1040053.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号