AI思考落子点

在之前我们已经实现计算权值了,现在要想让AI落子,应根据之前的计算结果使棋子落在分值最大点上。当然可能会出现多个分值相同的最大点,这时在其中随机取一个点落下即可。

  • chessData.h
typedef struct point{int row;int col;
} point_t;//机器下棋
point_t actionAI(ChessData* data);
  • chessData.cpp
#include <time.h>
#include <stdlib.h>
#include <vector>
point_t actionAI(ChessData* data){//计算评分calcScore(data);//找出最大分数位置int maxScore = 0;std::vector<std::pair<int, int>> maxPoints;int k = 0;for(int row = 0; row < BOARD_GRAD_SIZE; row++){for(int col = 0; col < BOARD_GRAD_SIZE; col++){//若该坐标为空if(data->chessMap[row][col] == 0){//找出最大数和坐标if(data->scoreMap[row][col] > maxScore){maxScore.clear();k = 0;maxScore.push_back(std::make_pair(row, col));k++;}else if(data->scoreMap[row][col] == maxScore){maxPoints.push_back(std::make_pair(row, col));k++;}}}}//如果有多个点随机落子srand((unsigned)time(0));int index = rend() % k;return maxPoints[index];}

实现AI落子

  • main.cpp
void AI_GO(){point_t point = actionAI(&game);clickPosRow = point.row;clickPosCol = point.col;Sleep(1000);chessDown(clickPosRow, clickPosCol, CHESS_WHITE);updateGameMap(&game, clickPosRow, clickPosCol);}

C++五子棋(五)——实现AI落子相关推荐

  1. 【每日新闻】未来五年AI助力下对最终用户产生最大影响的四个行业

    点击蓝字关注我们更多精彩,请点击上方蓝字关注我们! 每日新闻播报 第06-03期 1趋势洞察 未来五年AI助力下对最终用户产生最大影响的四个行业 凭借着简化业务流程.降低运营成本以及自动完成繁琐任务等 ...

  2. 新手java五子棋完整代码判断落子落在线上_JAVA五子棋开发

    让我们来思考一个问题:如何用Java来开发出一个五子棋项目?首先,没有界面其它的也就无从谈起,这里需要用到Java的SWING与AWT组件:有了五子棋界面,我们要能在界面上画出黑白棋子:最后,能够对输 ...

  3. 新手java五子棋完整代码判断落子落在线上_Java初学者,编写小游戏五子棋的问题?...

    首先你需要掌握GUI编程,事件处理,已经监听器,你就掌握Swing的知识就好了Swing框架,JFrame,JPanel,鼠标.键盘监听事件 Java基础,面向对象,异常处理,集合,IO流 网络编程, ...

  4. 解密五种AI筛选的“新冠”新药:能靶向病毒细胞侵入的蛋白酶

    截至目前,从中国临床试验注册中心登记显示来看,共有近30个新冠状病毒临床研究正在同步进行. 2月6日,面对当前2019新型冠状病毒(2019-nCoV)感染肺炎不断扩散的严峻形势,抑制药物的研发成为大 ...

  5. java五子棋的重要算法讲解_[Java五子棋小游戏-Ai算法精讲以及实现]-02--高级算法初步...

    高级算法初步 走对自己利益最大的路 它有难了不要慌,抛弃它,以这盘棋局的胜利为他报仇 碰撞检测与跨步算法原理图 反向计算权重 每次计算完权重,都要进行一次反向权重计算 权重值 : 两侧的权重值相加 权 ...

  6. Google DeepMind顾问预言:五年后AI将在《星际争霸》中战胜人类

    在纽芬兰和拉布拉多,正在用人工智能进行<星际争霸>比赛. <星际争霸>的幽灵机器人.(来自:维基共享资源) 接下来的两个星期里,在纪念大学(Memorial Universit ...

  7. 观远数据苏春园:五年AI+BI路,数智化破局中的变与不变|数据猿采访

    ""2021年终大型金猿主题策划活动"已正式开启,欢迎报名参与:榜单奖项+产业图谱+行业报告+线下论坛|或点击文末"阅读原文"链接后提交活动意向报名表 ...

  8. 第十五期“AI未来说·青年学术论坛”带你了解大数据运用

    全文共1184字,预计学习时长3分钟 2020年5月30日,第15期"AI未来说·青年学术论坛"大数据专场论坛以"线上平台直播+微信社群图文直播"形式举行.本次 ...

  9. 关于五子棋五子连珠判定问题

    五子棋判断哪一方胜利 引入 五子棋大家都知道吧,不再写多余的描述,本文只介绍一个自己想出来的判断双方哪一方胜利的算法. 注意:本文算法均为本人自创,没有借鉴任何人的文章与帮助,如有雷同,纯属巧合!未经 ...

最新文章

  1. 在Linux命令行下查询当前所使用的shell版本与种类的方法
  2. Linux基础知识题解答(一)
  3. 正则表达式匹配多行注解/**/
  4. 1.4 消息循环和回调函数
  5. 最速下降法(梯度下降法)
  6. PhpMyAdmin后台getshell
  7. bazel 链接_bazel-链接第三方动态库,静态库。
  8. exp导出表结构,不导出表数据。
  9. 第一行代码--笔记(3)
  10. windows 编写的硬件驱动_驱动更新有什么好处(一文解读驱动更新细则)
  11. 《程序员的数学》读后感
  12. 使用for循环打印出大写字母的ASCII码对照表
  13. 大数据产品价值主张_从「商业模式画布」看产品的价值主张和用户需求
  14. opencv (五十二)Shi-Tomas角点检测
  15. 计算机网络课程主机号怎么看,已知Ip地址_子网掩码如何计算子网号、主机号(收集整理)...
  16. 快速排名系统询火星推荐_seo排名工具推荐10火星:比较好用的SEO长尾关键词
  17. Linux部署禅道在访问web页面进入www时报错:mysql无法连接(重新解压安装包或者输入命令:setenforce 0即可)
  18. android x86启动卡死,[更新]Android-x86启动成功,但是还有点小问题。
  19. 基于组态王的过程控制——以巧克力牛奶的生产为例
  20. Lua Single--Method 的对象实现方法(面向对象程序设计)

热门文章

  1. orb_slam 编译错误
  2. Leetcode - 347. Top K Frequent Elements(堆排序)
  3. 提示MyEclipse Trial Expired,手动获取MyEclipse 注册码
  4. 计算机格式化后数据恢复的基础,用DiskGenius恢复误删除或误格式化后的文件
  5. 深度学习100例 | 第53天:用YOLOv5训练自己的数据集(超级详细完整版)
  6. 今日话题:坚持真的有用吗?
  7. softmax函数为什么叫softmax?
  8. Python编程基础:第十七节 集合Set
  9. python 重复输出字符串
  10. tomcat常见面试题目问答Top10