C++五子棋(五)——实现AI落子
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落子相关推荐
- 【每日新闻】未来五年AI助力下对最终用户产生最大影响的四个行业
点击蓝字关注我们更多精彩,请点击上方蓝字关注我们! 每日新闻播报 第06-03期 1趋势洞察 未来五年AI助力下对最终用户产生最大影响的四个行业 凭借着简化业务流程.降低运营成本以及自动完成繁琐任务等 ...
- 新手java五子棋完整代码判断落子落在线上_JAVA五子棋开发
让我们来思考一个问题:如何用Java来开发出一个五子棋项目?首先,没有界面其它的也就无从谈起,这里需要用到Java的SWING与AWT组件:有了五子棋界面,我们要能在界面上画出黑白棋子:最后,能够对输 ...
- 新手java五子棋完整代码判断落子落在线上_Java初学者,编写小游戏五子棋的问题?...
首先你需要掌握GUI编程,事件处理,已经监听器,你就掌握Swing的知识就好了Swing框架,JFrame,JPanel,鼠标.键盘监听事件 Java基础,面向对象,异常处理,集合,IO流 网络编程, ...
- 解密五种AI筛选的“新冠”新药:能靶向病毒细胞侵入的蛋白酶
截至目前,从中国临床试验注册中心登记显示来看,共有近30个新冠状病毒临床研究正在同步进行. 2月6日,面对当前2019新型冠状病毒(2019-nCoV)感染肺炎不断扩散的严峻形势,抑制药物的研发成为大 ...
- java五子棋的重要算法讲解_[Java五子棋小游戏-Ai算法精讲以及实现]-02--高级算法初步...
高级算法初步 走对自己利益最大的路 它有难了不要慌,抛弃它,以这盘棋局的胜利为他报仇 碰撞检测与跨步算法原理图 反向计算权重 每次计算完权重,都要进行一次反向权重计算 权重值 : 两侧的权重值相加 权 ...
- Google DeepMind顾问预言:五年后AI将在《星际争霸》中战胜人类
在纽芬兰和拉布拉多,正在用人工智能进行<星际争霸>比赛. <星际争霸>的幽灵机器人.(来自:维基共享资源) 接下来的两个星期里,在纪念大学(Memorial Universit ...
- 观远数据苏春园:五年AI+BI路,数智化破局中的变与不变|数据猿采访
""2021年终大型金猿主题策划活动"已正式开启,欢迎报名参与:榜单奖项+产业图谱+行业报告+线下论坛|或点击文末"阅读原文"链接后提交活动意向报名表 ...
- 第十五期“AI未来说·青年学术论坛”带你了解大数据运用
全文共1184字,预计学习时长3分钟 2020年5月30日,第15期"AI未来说·青年学术论坛"大数据专场论坛以"线上平台直播+微信社群图文直播"形式举行.本次 ...
- 关于五子棋五子连珠判定问题
五子棋判断哪一方胜利 引入 五子棋大家都知道吧,不再写多余的描述,本文只介绍一个自己想出来的判断双方哪一方胜利的算法. 注意:本文算法均为本人自创,没有借鉴任何人的文章与帮助,如有雷同,纯属巧合!未经 ...
最新文章
- 在Linux命令行下查询当前所使用的shell版本与种类的方法
- Linux基础知识题解答(一)
- 正则表达式匹配多行注解/**/
- 1.4 消息循环和回调函数
- 最速下降法(梯度下降法)
- PhpMyAdmin后台getshell
- bazel 链接_bazel-链接第三方动态库,静态库。
- exp导出表结构,不导出表数据。
- 第一行代码--笔记(3)
- windows 编写的硬件驱动_驱动更新有什么好处(一文解读驱动更新细则)
- 《程序员的数学》读后感
- 使用for循环打印出大写字母的ASCII码对照表
- 大数据产品价值主张_从「商业模式画布」看产品的价值主张和用户需求
- opencv (五十二)Shi-Tomas角点检测
- 计算机网络课程主机号怎么看,已知Ip地址_子网掩码如何计算子网号、主机号(收集整理)...
- 快速排名系统询火星推荐_seo排名工具推荐10火星:比较好用的SEO长尾关键词
- Linux部署禅道在访问web页面进入www时报错:mysql无法连接(重新解压安装包或者输入命令:setenforce 0即可)
- android x86启动卡死,[更新]Android-x86启动成功,但是还有点小问题。
- 基于组态王的过程控制——以巧克力牛奶的生产为例
- Lua Single--Method 的对象实现方法(面向对象程序设计)
热门文章
- orb_slam 编译错误
- Leetcode - 347. Top K Frequent Elements(堆排序)
- 提示MyEclipse Trial Expired,手动获取MyEclipse 注册码
- 计算机格式化后数据恢复的基础,用DiskGenius恢复误删除或误格式化后的文件
- 深度学习100例 | 第53天:用YOLOv5训练自己的数据集(超级详细完整版)
- 今日话题:坚持真的有用吗?
- softmax函数为什么叫softmax?
- Python编程基础:第十七节 集合Set
- python 重复输出字符串
- tomcat常见面试题目问答Top10