声明:这是一个简单的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”以达到一次悔两步棋的目的。

用Java实现简单的AI五子棋对弈相关推荐

  1. 五子棋游戏Java代码简单实现(含活动图和类图设计)

    五子棋游戏Java代码简单实现(含活动图和类图设计) 文章目录 五子棋游戏Java代码简单实现(含活动图和类图设计) 活动图设计 类图设计 代码实现 总结 OOA和OOD设计 代码设计 可改进部分 活 ...

  2. C语言实现五子棋对弈(简单输入坐标下棋,可设置悔棋次数版)

    一. 设计题目.任务及要求 题目:五子棋对弈 对弈规则如下: 主要功能是实现两人之间的对弈,在画好的棋盘上,两个玩家轮流选择自己的落子坐标,然后由五子棋系统自动识别判断游戏的进展,知道一方的五子连成一 ...

  3. python五子棋ai_零基础学Python之—AI五子棋(1)

    今天是小编学习Python的第二天,有点小激动,因为我 昨天试了下水,做了一个Python的小弹球游戏,代码copy一路畅通,效果也还不错,而且,我居然还得了60个赞,很高兴,因为这是我第一次写技术博 ...

  4. 【人工智能】基于蒙特卡洛树搜索和策略价值网络的AI五子棋算法设计

    基于蒙特卡洛树搜索和策略价值网络的AI五子棋算法设计 摘要 蒙特卡洛树搜索算法 五子棋博弈的状态价值函数 附1:详细论文说明下载: 附2:实现代码下载(2022.10更新后代码): 摘要 随着人工智能 ...

  5. Java用最少代码实现五子棋-玩家对战模式-人机对战模式-电脑策略对战

    Java用最少代码实现五子棋-玩家对战模式-人机对战模式-电脑策略对战 玩家对战模式 背景说明 代码实现 人机对战模式 背景说明 完整代码实现 电脑根据优势分数对战 背景说明 完整代码实现 小结 玩家 ...

  6. qpython3h教程_Python3实现AI五子棋【初版】|python3教程|python入门|python教程

    https://www.xin3721.com/eschool/pythonxin3721/ 本文转载至知乎ID:Charles(白露未晞)知乎个人专栏 下载W3Cschool手机App,0基础随时随 ...

  7. Java实践(十一)——五子棋

    一.实践目标: 1.掌握JavaGUI界面设计 2.掌握鼠标事件的监听(MouseListener,MouseMotionListener) 二.实践内容: 设计一个简单的五子棋程序,能够实现五子棋下 ...

  8. 使用Sabaki和Leela Zero配置AI围棋对弈环境

    使用Sabaki和Leela Zero配置AI围棋对弈环境 一.下载Sabaki和Leela Zero最新版本 二.安装Sabaki 三.安装leela zero 四.Sabaki配置leela ze ...

  9. 【登录】刷脸登录(java语言-百度云ai)

    刷脸登录(java语言-百度云ai) pdf文件 一. 浅谈人工智能 人工智能(Artificial Intelligence),英文缩写为AI.它是研究.开发用于模拟.延伸和扩展人的智能的理论.方法 ...

最新文章

  1. 微服务项目用了几台服务器,微服务部署运维
  2. LeetCode: 106. Construct Binary Tree from Inorder and Postorder Traversal
  3. linux多进程条件变量,Linux 多线程条件变量同步
  4. Git 的特点—— Git 学习笔记 02
  5. 【转】排序算法复习(Java实现) (二): 归并排序,堆排序,桶式排序,基数排序...
  6. mac mysql-python 失败_MAC OS安装MySQL-python总是失败,请帮忙看看什么原因?
  7. oracle服务器不识别tc服务,记一次ORACLE无法启动登陆事故
  8. LeetCode【1--两数之和】 LeetCode【2--两数相加】
  9. java 方法 示例_Java ArrayDeque带有示例的removeFirstOccurrence()方法
  10. 风格和个性!一组微质感图标设计灵感
  11. 简单com编写流程及注册事项
  12. liunx 双网卡同网段配置
  13. MCMC: Metropolis-Hastings, Gibbs and slice sampling
  14. 微信多开txt_1分钟教你如何实现微信多开!建议收藏!
  15. [转载]Oracle监听器安装与设置(2)
  16. Python 之 turtle 库
  17. 【数据挖掘学习笔记】数据挖掘中主要问题有哪些?
  18. Hadoop2.7.1+Hbase1.2.1集群环境搭建(5)hbase安装
  19. 复现 ASPCMS企业建站系统Cookies欺骗漏洞
  20. 全球及中国玄武岩增强纤维发展前景及投资潜力预测报告2021~2026年

热门文章

  1. 8千多写作常见错别字检查ACCESS数据库
  2. 达梦数据库DCA培训心得
  3. 【OpenGL学习笔记⑧】——键盘控制正方体+光源【冯氏光照模型 光照原理 环境光照+漫反射光照+镜面光照】
  4. TOM怎么注册字母邮箱,字母邮箱注册方法
  5. 抖音、快手、视频号排兵布阵VR直播
  6. Linux监控平台搭建zabbix
  7. RabbitMQ 的使用场景有哪些?
  8. 二维数组和指针之间的关系详解
  9. arduino教程-08.超声波的应用
  10. 安装itunes需要管理员身份_在WIN7上无法成功安装iTunes以管理员身… - Apple 社区...