智能电子棋盘的制作方法
- 格式:pdf
- 大小:124.35 KB
- 文档页数:9
象棋机器人棋子定位和身份判定方法赵融;韩燮;郭晓霞【摘要】针对象棋机器人系统中棋子定位过程烦琐、误差大及通过文字识别棋子的算法复杂度高的问题,提出一种基于图像处理的棋子定位和高度测量方法;以及棋子身份判定算法.首先,根据文字的颜色特征分割棋子并对二值图像做线性融合和膨胀运算;通过绘制轮廓外接圆定位棋子.然后,匹配RGB与RGB-D图像结合数学模型,测量棋子高度.其次,用数字编码定义棋子身份并实时判定.最后,结果表明,方法的棋子分割正确率100%,定位误差0.51 mm,平均定位时间0.212 s.高度测量误差1 mm.单流程棋子身份判定算法和系统运行时间分别为9 ms和0.224 s、可见方法的有效性和实用性.【期刊名称】《科学技术与工程》【年(卷),期】2018(018)035【总页数】8页(P50-57)【关键词】图像处理;图像匹配;棋子定位;高度测量;身份判定【作者】赵融;韩燮;郭晓霞【作者单位】中北大学计算机科学与技术学院,太原030051;中北大学计算机科学与技术学院,太原030051;中北大学计算机科学与技术学院,太原030051【正文语种】中文【中图分类】TP242.62随着人工智能技术的迅速发展,人与机器人象棋对弈系统的研究得到了很大的进展,智能化程度不断提高。
人与机器人对弈系统通常由四个模块组成:图像处理模块,定位棋子;模式识别模块,识别棋子身份;人工智能模块,决定走棋策略;控制模块,控制机器人手臂的抓取。
人机对弈系统中,棋子的定位方法分为非视觉和视觉。
非视觉方法是利用特制的电子棋盘[1—3]定位和识别棋子;视觉方法是通过图像处理定位棋子。
Piskorec等[4],Matuszek等[5]运用Harris或SUSAN角点检测等算法检测棋盘的角点,并剔除假角,再应用图像减法,对棋子进行分割和定位;上述方法的优点是对摄像机失真的容忍度高。
但是,在中国象棋中,棋盘角点被棋子遮挡,增加了检测难度。
2021.13科学技术创新一种智能博弈象棋机器人任帅张云飞(黑龙江科技大学,黑龙江哈尔滨150028)智能象棋机器人以树莓派为控制核心,由棋盘及棋子、光杆、传送带、齿轮、齿条等部分组成。
该机器人的操作流程一般通过摄像头来矫正棋盘并且对棋盘的位置进行定位,然后在实时检测棋子的位置的变动,通过玩家象棋在棋盘上的落子的位置,然后输入到象棋的算法中,从而得到接下来得到象棋的应下的坐标位置。
之后通过串口通信,把象棋落子的坐标传给stm32单片机,单片机在控制舵机来完成棋子的抓取与放置的动作,从而真正实现了人机交互的智能博弈象棋机器人。
1智能象棋机器人的设计本文设计了一种具有人机交互的象棋机器人。
该结构主要包括光轴、轴承、滑块、支架等部分。
在滑块上存在四个直线轴承以方便光杆的运动,在电机架上装有两个步进电机用以控制光杆的移动,在机架旁边装有两个支座用以支撑整个机械结构。
在滑块上部放有一个接头,并在光杆末尾也放置一个接头用以安置光杆。
在前部接头上放置齿轮和齿条,通过驱动舵机来使衔铁装置上下运动。
设计的智能象棋机器人通过采用带传动和导轨实现x,y轴的运动,从而使棋子达到准确位置。
通过齿轮齿条传动实现拾棋子和放棋子的动作。
智能象棋机器人整体外部侧面结构示意图如图1所示。
图1整体外部结构图2智能象棋机器人的使用原理和流程2.1机器视觉部分在树莓派上,移植使用opencv做视觉处理部分,主要负责棋盘定位、局面判断部分工作。
2.1.1霍夫圆变换理论(Paul Hough)Paul Hough于1962年提出一种简单的检测图形的算法,并将其命名为Hough变换。
Hough变换将图像空间中的图形检测对应为参数空间的投票统计,将图像空间和参数空间形成映射关系。
通常将参数空间称作Hough空间,投票的维数取决于检测图形的参数的个数。
结合opencvAPI实现对圆形目标的定位,相对于色彩匹配、模板匹配、深度学习等方式定位棋盘有着操作简单、稳定性高、计算代价低、执行效率高、可用于嵌入式平台等优势。
题目:智能五子棋游戏一、实验目的理解和掌握博弈树的启发式搜索过程和α-β减枝技术,能够用某种程序语言开发一个五子棋博弈游戏。
二、实验要求(1)设计一个15行15列棋盘,要求自行给出估价函数,按极大极小搜索方法,并采用α-β减枝技术。
(2)采用人机对弈方式,对弈双方设置不用颜色的棋子,一方走完后,等待对方走步,对弈过程的每个棋局都在屏幕上显示出来。
当某一方在横、竖或斜方向上先有5个棋子连成一线时,该方为赢。
(3)提交一篇实验论文,以及完整的软件(包括源程序和可可执行程序)和相关文档。
三、实验原理①估价函数的设计:下子后,求在该点的所有8个方向上4格之内的所有的没有阻隔的白子的和加上没有阻隔的黑子的数目之和,和为估价函数的值。
直观来说就是,如果在该点下子后连成同颜色的棋子越多,该点的估价值越大,同时阻挡另一种颜色的棋子越多,估价值也越大。
②判断是否有一方胜出:设计is_win函数,在每一次下子后检查是否是终局(一方胜出或者棋盘下满和局)。
对于棋盘上每一个已经下了棋子的点,检查其4个方向上是否有连续5颗同颜色的棋子,若有,则有一方胜出。
③寻找候选点,用于建立博弈树:对于棋盘上每一个还没有下子的点,测试其附近8个点是否已经下了棋子,若有,把该点加入候选点。
④搜寻最佳着点:根据候选点建立3层的博弈树,再利用估价函数对节点进行比较,得出最佳着点。
四、代码人主要代码public void refreshMax(int n){switch(n){case 1:{ //更新预测棋盘1最大值及其坐标maxValue1=0;number1=0;for(int i=0;i<size;i++){for(int j=0;j<size;j++){if(preBoard1[i][j]>maxValue1){maxX1.clear();maxY1.clear();maxX1.add(i);maxY1.add(j);number1=1;}else if(preBoard1[i][j]==maxValue1){maxX1.add(i);maxY1.add(j);number1++;}}}break;}case 2:{ //更新预测棋盘2最大值及其坐标maxValue2=0;number2=0;for(int i=0;i<size;i++){for(int j=0;j<size;j++){if(preBoard2[i][j]>maxValue2){maxX2.clear();maxY2.clear();maxX2.add(i);maxY2.add(j);number2=1;}else if(preBoard2[i][j]==maxValue2){maxX2.add(i);maxY2.add(j);number2++;}}}break;}case 3:{ //更新预测棋盘3最大值及其坐标maxValue3=0;number3=0;for(int i=0;i<size;i++){for(int j=0;j<size;j++){if(preBoard3[i][j]>maxValue3){maxX3.clear();maxY3.clear();maxX3.add(i);maxY3.add(j);number3=1;}else if(preBoard3[i][j]==maxValue3){maxX3.add(i);maxY3.add(j);number3++;}}}break;}case 4:{ //更新预测棋盘4最大值及其坐标maxValue4=0;number4=0;for(int i=0;i<size;i++){for(int j=0;j<size;j++){if(preBoard4[i][j]>maxValue4){maxX4.clear();maxY4.clear();maxX4.add(i);maxY4.add(j);number4=1;}else if(preBoard4[i][j]==maxValue4){maxX4.add(i);maxY4.add(j);number4++;}}}break;}case 5:{ //更新预测棋盘5最大值及其坐标maxValue5=0;number5=0;for(int i=0;i<size;i++){for(int j=0;j<size;j++){if(preBoard5[i][j]>maxValue5){maxX5.clear();maxY5.clear();maxX5.add(i);maxY5.add(j);number5=1;}else if(preBoard5[i][j]==maxValue5){maxX5.add(i);maxY5.add(j);number5++;}}}break;}case 6:{ //更新预测棋盘6最大值及其坐标maxValue6=0;number6=0;for(int i=0;i<size;i++){for(int j=0;j<size;j++){if(preBoard6[i][j]>maxValue6){maxX6.clear();maxY6.clear();maxX6.add(i);maxY6.add(j);number6=1;}else if(preBoard6[i][j]==maxValue6){maxX6.add(i);maxY6.add(j);number6++;}}}break;}case 7:{ //更新预测棋盘7最大值及其坐标maxValue7=0;number7=0;for(int i=0;i<size;i++){for(int j=0;j<size;j++){if(preBoard7[i][j]>maxValue7){maxX7.clear();maxY7.clear();maxX7.add(i);maxY7.add(j);number7=1;}else if(preBoard7[i][j]==maxValue7){maxX7.add(i);maxY7.add(j);number7++;}}}break;}}}AI主要代码public void refreshMax(int n){switch(n){maxValue1=0;number1=0;for(int i=0;i<size;i++){for(int j=0;j<size;j++){if(preBoard1[i][j]>maxValue1){maxValue1=preBoard1[i][j];maxX1.clear();maxY1.clear();maxX1.add(i);maxY1.add(j);number1=1;}else if(preBoard1[i][j]==maxValue1){maxX1.add(i);maxY1.add(j);number1++;}}}break;}maxValue2=0;number2=0;for(int i=0;i<size;i++){for(int j=0;j<size;j++){if(preBoard2[i][j]>maxValue2){maxValue2=preBoard2[i][j];maxX2.clear();maxY2.clear();maxX2.add(i);maxY2.add(j);number2=1;}else if(preBoard2[i][j]==maxValue2){maxX2.add(i);maxY2.add(j);number2++;}}}break;}maxValue3=0;number3=0;for(int i=0;i<size;i++){for(int j=0;j<size;j++){if(preBoard3[i][j]>maxValue3){maxValue3=preBoard3[i][j];maxX3.clear();maxY3.clear();maxX3.add(i);maxY3.add(j);number3=1;}else if(preBoard3[i][j]==maxValue3){maxX3.add(i);maxY3.add(j);number3++;}}}break;}maxValue4=0;number4=0;for(int i=0;i<size;i++){for(int j=0;j<size;j++){if(preBoard4[i][j]>maxValue4){maxValue4=preBoard4[i][j];maxX4.clear();maxY4.clear();maxX4.add(i);maxY4.add(j);number4=1;}else if(preBoard4[i][j]==maxValue4){maxX4.add(i);maxY4.add(j);number4++;}}}break;}maxValue5=0;number5=0;for(int i=0;i<size;i++){for(int j=0;j<size;j++){if(preBoard5[i][j]>maxValue5){maxValue5=preBoard5[i][j];maxX5.clear();maxY5.clear();maxX5.add(i);maxY5.add(j);number5=1;}else if(preBoard5[i][j]==maxValue5){maxX5.add(i);maxY5.add(j);number5++;}}}break;}maxValue6=0;number6=0;for(int i=0;i<size;i++){for(int j=0;j<size;j++){if(preBoard6[i][j]>maxValue6){maxValue6=preBoard6[i][j];maxX6.clear();maxY6.clear();maxX6.add(i);maxY6.add(j);number6=1;}else if(preBoard6[i][j]==maxValue6){maxX6.add(i);maxY6.add(j);number6++;}}}break;}maxValue7=0;number7=0;for(int i=0;i<size;i++){for(int j=0;j<size;j++){if(preBoard7[i][j]>maxValue7){maxValue7=preBoard7[i][j];maxX7.clear();maxY7.clear();maxX7.add(i);maxY7.add(j);number7=1;}else if(preBoard7[i][j]==maxValue7){maxX7.add(i);maxY7.add(j);number7++;}}}break;}}}五、感想通过这个试验,我对估价函数,极大极小搜索方法,α-β减枝技术有了更全面的认识,对它们的运用也更加熟练。
智能棋盘的实现原理是:通过搭载在棋子底部的霍尔元件感知棋盘传感器磁场的变化,并将信息传输到系统中,系统再对这些数据进行分析,从而准确记录每一步棋子的走法和棋局状态。
以中国象棋为例,智能棋盘主要由图磁混合编码的棋子、图像和磁感应阵列的棋盘、具有综合控制功能的嵌入式系统组成,通过下位机识别棋子有无和具体位置等信息,利用ARM 处理器进行数据的采集和处理,最终通过上位机实时显示棋子的分布情况,并且调用中国象棋智能体,在棋盘界面上给出当前棋局的分析。
word绘制中国象棋棋盘[整理版] word绘制中国象棋棋盘
注:本文涉及版权,不得用于商业用途,仅供参考。
用Word就可以轻松绘制出美观、实用的中国象棋棋盘。
一、设置页面
运行Word,点“文件”?“页面设置”,打开“页面设置”对话框。
切换到“纸型”标签卡,在下拉列表中选择或自定义一种纸型。
(选择自定义,宽度设为30厘米,高度设为33厘米,其它选项默认。
二、绘制棋盘
1.插入表格:点击“表格”?“插入表格”,打开“插入表格”对话框,因为中国象棋的棋盘从整体上看是一个9行8列的表格,所以在“列数”一栏的文本框中输入8,“行数”一栏的文本框中输入9,单击“确定”,在Word工作窗口中插入一张9行8列的表格;
2.调整大小:选中刚才插入的整张表格,单击鼠标右键,在弹出的快捷菜单中选择“表格属性”命令,打开“表格属性”对话框,将表格的行高和列宽都设置为3厘米;
3.细节处理:点击“表格”?“绘制表格”,调出“表格和边框”工具栏,利用绘制表格工具,在棋盘上下两端将、帅的活动区域画出“米”字格。
选中表格的第五行,单击右键,在快捷菜单中选择“合并单元格”,将表格第五行的所有单元格合并,这样一张中国象棋棋盘的外形就绘制完成了。
三、修饰棋盘
1.设置边框:选中整张表格,单击鼠标右键,在弹出的快捷菜单选择“表格属性”命令,打开“表格属性”对话框,单击“边框和底纹”按钮,打开“边框和底纹”窗口,根据自己的喜好,对表格的边框和页面边框的线型、粗细、颜色进行设置。
2.添加文字:将光标定位到表格的第五行,输入“楚河汉界”四个字,并根据需要调整文字的字体、大小、颜色和位置。
一张美观、实用的中国象棋棋盘就制作好了,只要联上打印机打印一张就行了。
智能中国象棋系统的设计与实现摘要人工智能(AI)中国象棋系统是将计算机知识和中国象棋知识结合起来的一种新型的游戏方式。
智能中国象棋系统在此基础上实现人与机器的对弈,突破了以往传统象棋游戏只能人与人对战的限制,使中国象棋这一古老的游戏形式焕发出蓬勃朝气。
本文结合在中国象棋机器博弈方面的实践经验,在分析了中国象棋游戏需求基础上,设计并实现了智能中国象棋系统。
该系统包括人人对战、人机对战、制作棋谱、播放棋谱以及挑战英雄榜等功能模块。
人人对战规则明确,包含了中国象棋所有的着法;人机对战中电脑棋力分为简单、中等、困难三个等级,方便了不同水平人群的选择;制作和播放棋谱模块容易操作,方便学习;挑战英雄榜则为象棋游戏增加了乐趣。
本系统的实现满足了人们对中国象棋的基本需求,解决了传统象棋游戏学习性差、棋谱不易保存、不易演示等问题。
关键词:计算机博弈,中国象棋,人机对战,制作棋谱,搜索算法Intelligent Chinese Chess System Design and ImplementationAuthor:Wang GuiweiTutor:Fang MiaoAbstractArtificial Intelligence (AI) Chinese Chess System is a new games’ way which combines with computer knowledge and Chinese Chess knowledge.Intelligent Chinese Chess System on the basis of it which completes the game between human and computer , breaking the traditional chess game’s restriction that only can play against people. So that the ancient game of Chinese chess become prosperity .With the practical experience in Chinese chess computer game,a detailed analysis and research has been done .Based on those, I designed and implemented the Intelligent Chinese Chess System .This system includes the game against human ,the gme between computer and human ,make chess manual ,play chess manual and hero list functions .The game against human function has all the Chinese Chess rules and they are very clear.In the game between computer and human function ,computer thinking depth is divided into simple,medium and difficulty.It facilitate the choice of different levels. Making and playing chess manual fuctions are easy to operating and learning. Hero list fuction adds much fun to chess game.This system satisfied the basic demand of people to Chinese chess and solved the studying hard and the theoretical is not easy to making and playing of the traditional chess game.Key Words:Computer Game, Chinese Chess,Game between Human and Computer, Make Chess Manual, Search Tecniques目录1 绪论 (2)1.1选题的背景和意义 (2)1.2发展动态及研究现状 (2)1.3系统概述 (3)1.4本文的主要工作 (4)1.5论文结构 (5)2 系统的分析和设计 (5)2.1数据结构(DATA STRUCTURE) (5)2.1.1 棋盘的基本表示法(Board Representions) (6)2.2着法生成(MOVE GENERATION) (8)2.2.1 模板匹配法 (8)2.2.2 预置表法 (8)2.3局面评估 (9)2.3.1 估值函数(Evaluation Function) (9)2.3.2 估值的速度与博弈性能 (11)2.3.3 估值函数的优化 (11)2.4博弈树搜索技术 (13)2.4.1 基本搜索算法 (13)2.4.2 高级搜索算法 (16)2.5开局库设计 (17)2.5.1 开局库的作用 (17)2.5.2 实现开局库的主要方法 (17)3 系统的实现 (19)3.1系统的整体规划 (19)3.2象棋界面的实现 (20)3.3对弈功能的实现 (24)3.4制作和演示棋谱的实现 (28)3.5象棋英雄榜的实现 (32)3.6开局库的实现 (32)3.7程序说明 (33)3.8实验结果及分析 (33)结论... .. (35)致谢 (37)参考文献 (38)附录 (39)附录A:A INTRODUCTION ABOUT CHINESE CHESSA (39)附录B:关于中国象棋的一些简要介绍 (42)1 绪论1.1选题的背景和意义在人类文明发展的初期,人们便开始进行棋类博弈的游戏了。
五子棋人工智能算法设计与实现五子棋是一种流行的策略游戏,玩家需要在一个15×15的棋盘上相互交替放置黑色和白色的棋子。
游戏的规则简单,但在实际游戏中,需要考虑到许多因素,例如棋盘的当前状态、对手的反应以及自己的策略,这使得五子棋成为一个很有挑战性的游戏。
在设计和实现一个五子棋算法时,需要考虑以下步骤:游戏状态表示:算法首先需要一个方法来表示当前的游戏状态。
这可以通过一个函数来完成,该函数接受当前棋盘上的所有棋子作为输入,并返回一个字符串或字节串表示当前游戏状态。
搜索算法:搜索算法是人工智能算法的核心,它需要找到一个好的落子位置。
常见的搜索算法有暴力搜索、极小化极大搜索(MinMax)算法以及A*搜索算法等。
在五子棋中,可以使用极小化极大搜索算法来找到一个好的落子位置。
评估函数:评估函数用于评估棋盘的当前状态以及每个可能落子的得分。
在五子棋中,评估函数需要考虑当前棋盘上的连珠、对手的威胁以及自己可能形成的威胁等因素。
剪枝:在极小化极大搜索算法中,可以使用剪枝来减少搜索的深度和广度。
通过剪枝,可以排除一些明显不好的落子位置,从而提高搜索效率。
玩家和电脑的落子:在实现算法时,需要编写一个函数来处理玩家和电脑的落子。
这个函数应该接受当前游戏状态和玩家选择的落子位置作为输入,然后更新棋盘状态并返回下一步棋盘状态和落子信息。
游戏结束条件:算法还需要检测游戏是否已经结束。
在五子棋中,当一方获胜时,游戏结束。
public class Gomoku {private static final int SIZE = 15;private int board = new int[SIZE][SIZE];private int heuristic = new int[SIZE][SIZE];public void init() {for (int i = 0; i < SIZE; i++) {for (int j = 0; j < SIZE; j++) {board[i][j] = 0;public int get(int x, int y) {return board[x][y];public void set(int x, int y, int player) {board[x][y] = player;}随着技术的飞速发展,高性能计算在各个领域的应用越来越广泛。
《五子棋人工智能算法设计与实现》篇一一、引言五子棋是一款源于古代的智力游戏,它不仅要求玩家在逻辑和策略上有着敏锐的洞察力,而且要求对棋局有深入的理解。
近年来,随着人工智能技术的快速发展,五子棋的人工智能算法设计与实现成为了研究的热点。
本文将详细介绍五子棋人工智能算法的设计与实现过程。
二、五子棋游戏规则概述五子棋的规则相对简单,但策略性极强。
游戏的目标是在一个15×15的棋盘上,通过连接五个或更多相同颜色的棋子来获得胜利。
玩家轮流下棋,每一轮可以选择行或列中的空白位置进行下棋。
当某一玩家下出的棋子与已存在的棋子连接成五子连线时,该玩家获胜。
三、人工智能算法设计五子棋的人工智能算法设计主要包括状态表示、策略搜索和价值评估三个部分。
(一)状态表示状态表示是人工智能算法的基础。
在五子棋中,我们通过一个二维数组来表示当前的游戏状态,包括棋盘上的棋子布局、玩家状态等信息。
同时,我们还需要定义一些规则来约束棋盘上的操作,如禁止双三、禁止四三等。
(二)策略搜索策略搜索是人工智能算法的核心部分。
我们采用深度优先搜索和广度优先搜索相结合的策略进行搜索。
具体来说,我们首先使用广度优先搜索来寻找可能的下一步棋,然后使用深度优先搜索来评估每一步棋的价值。
在搜索过程中,我们还需要考虑一些剪枝策略来减少搜索空间,提高搜索效率。
(三)价值评估价值评估是衡量每一步棋对胜负影响的重要手段。
我们通过分析每一步棋对后续棋局的影响、对对手的威胁程度等因素来评估其价值。
同时,我们还需要考虑一些特殊情况,如禁手、活三等,以更准确地评估每一步棋的价值。
四、算法实现在实现五子棋人工智能算法时,我们采用了Python编程语言和深度学习框架TensorFlow。
具体实现步骤如下:(一)定义数据结构首先,我们需要定义一个类来表示五子棋的游戏状态和操作。
这个类包括一个二维数组来表示棋盘、一个列表来表示当前玩家的下一步操作等。
同时,我们还需要定义一些函数来处理输入和输出等操作。
智能人机对弈五子棋机器人设计吴晏奇;陈大磊;王宇;宋华军【摘要】随着人工智能技术的发展,脱离手机和电脑的实战化游戏机器人成为当前研究的热点.结合智能化模式识别和机械控制算法,设计了一套低成本简易化的五子棋人机对弈系统.设计的系统采用设计的智能图像处理方法、五子棋决策树算法,通过STM32主控系统控制数字舵机执行落子动作,进而完成人机对弈.设计的系统简化了机械臂控制的复杂度并提高了落子的准确度.实际测试表明,系统实现了一体化运行,完成五子棋人机对弈的功能.【期刊名称】《电子器件》【年(卷),期】2019(042)004【总页数】5页(P968-972)【关键词】图像识别;决策树;五子棋;机械臂【作者】吴晏奇;陈大磊;王宇;宋华军【作者单位】中国石油大学(华东)信息与控制工程学院,山东青岛266580;中国石油大学(华东)信息与控制工程学院,山东青岛266580;中国石油大学(华东)信息与控制工程学院,山东青岛266580;中国石油大学(华东)信息与控制工程学院,山东青岛266580【正文语种】中文【中图分类】TP391从谷歌公司AlphaGO围棋机器人与李世石围棋对弈,人工智能下棋机器人受到了广泛的关注[1],五子棋是一款历史悠久、老少皆宜的益智游戏,目前研究方向大多以软件算法实现为主[2],对软硬件一体化结合的人机对弈研究较少。
大部分以电脑游戏或手机游戏出现。
将五子棋与机器人技术相结合,使对弈者与人工智能对战,使五子棋游戏更加真是有趣。
山东海大机器人科技公司推出的五子棋智能机器人,采用工业级的机器臂设计,价格高昂,体积大,无法贴近普通群众。
为了降低成本,并且保持算法精度,本设计采用普通摄像头,较廉价数字舵机与STM32控制器[3]组成整个系统。
1 五子棋机器人系统总体介绍系统硬件结构由机械臂、棋盘和摄像头组成,如图1所示。
图1 五子棋机器人系统硬件结构示意图软件结构共有3部分组成:图像处理模块、落子计算模块和控制模块。
在excel中制作五子棋讲解五子棋是一种两人对弈的纯策略型棋类游戏,通常双方分别使用黑白两色的棋子;下面是有在excel中制作五子棋讲解,欢迎参阅。
首先在excel表格模式时,画两个单选框将一个按钮,然后参照我的另外一篇百度经验”怎样通过excel计算出九宫格“,双击按钮进入到代码模式。
图中红色宽中主要讲述对棋盘的设置;图中红色所讲述的是,在表1被激活时,单选框1被选中;图中红色所讲述的是,若单选框1被选中时,鼠标所选的单元格被赋值为实心圆,赋值后,更换为单选框2被选中;若当单选框2被选中时,鼠标所选的单元格被赋值为空心圆,赋值后,更换为单选框1被选中。
到此时,五子棋的下子程序已经完成了,剩余判断胜负的程序了。
我把判断胜负的程序,分为了4部分;判断竖直胜利部分;判断水平胜利部分;判断左倾斜胜利部分;判断右倾斜胜利部分;每一部分原理都类似,这里只讲述竖直胜利的情况。
判断竖直胜负的原理:当黑子方走完最后一颗实心黑子时,只要判断以该颗棋子为中心的9颗竖直排列的棋子中,是否有5颗连续为实心黑子,若有,则胜利;所有程序:Private Sub CommandButton1_Click()Range("E5:AD30").ClearContentsWith Range("E5:AD30").Font.Name = "宋体".FontStyle = "bold".Size = 12End WithWith ActiveSheet.Cells.ColumnWidth = 2.5.RowHeight = 17.5End WithEnd SubPrivate Sub Worksheet_Activate()OptionButton1.Value = TrueEnd SubPrivate Sub Worksheet_SelectionChange(ByVal Target As Range)'五子棋部分If ActiveCell.Row < 31 And ActiveCell.Row > 4 And ActiveCell.Column < 31 And ActiveCell.Column > 4 Then If OptionButton1.Value = True And ActiveCell.Value = "" Then ActiveCell.Value = "●"OptionButton2.Value = TrueElseIf OptionButton2.Value = True And ActiveCell.Value = "" ThenActiveCell.Value = "○"OptionButton1.Value = TrueEnd Ifa = 0'判断竖胜部分For i = -4 To 4If Sheet1.Cells(ActiveCell.Row, ActiveCell.Column - i) = ActiveCell.Value Thena = a + 1Elsea = 0If a = 5 ThenIf ActiveCell.Value = "●" ThenMsgBox "黑方胜"Range("E5:AD30").ClearContentsElseMsgBox "白方胜"Range("E5:AD30").ClearContentsEnd IfExit ForEnd IfNext'判断横胜部分For i = -4 To 4If Sheet1.Cells(ActiveCell.Row - i, ActiveCell.Column) = ActiveCell.Value Thena = a + 1Elsea = 0End IfIf a = 5 ThenIf ActiveCell.Value = "●" ThenMsgBox "黑方胜"Range("E5:AD30").ClearContentsElseMsgBox "白方胜"Range("E5:AD30").ClearContentsEnd IfExit ForEnd If'判断左斜胜部分For i = -4 To 4If Sheet1.Cells(ActiveCell.Row - i, ActiveCell.Column - i) = ActiveCell.Value Thena = a + 1Elsea = 0End IfIf a = 5 ThenIf ActiveCell.Value = "●" ThenMsgBox "黑方胜"Range("E5:AD30").ClearContentsElseMsgBox "白方胜"Range("E5:AD30").ClearContentsEnd IfExit ForEnd IfNext'判断右斜胜部分For i = -4 To 4If Sheet1.Cells(ActiveCell.Row + i, ActiveCell.Column - i) = ActiveCell.Value Thena = a + 1Elsea = 0End IfIf a = 5 ThenIf ActiveCell.Value = "●" ThenMsgBox "黑方胜"Range("E5:AD30").ClearContents ElseMsgBox "白方胜"Range("E5:AD30").ClearContents End IfExit ForEnd IfNextEnd IfEnd Sub。
本技术新型公开了一种智能电子棋盘,包括电脑或移动终端、棋盘控制器和棋盘,棋盘设有棋盘组件和驱动盒,棋盘组件包括纵轴拖动装置和19路横轴翻转装置,纵轴拖动装置设有纵向电机,纵向电机通过主纵向传动轴连接主动轮,主动轮通过同步带连接从纵向传动轴上的从动轮,同步带在每路横轴的下方,每路横轴翻转装置的一端均连接有横向电机,且横轴上套设有通过同步带沿横轴移动的滑块,每路横轴上均匀分布有19个内部中空的正三棱柱翻板装置,正三棱柱翻板装置一面为棋格线,另两面分别固定黑棋子和白棋子;本技术新型实现了电子棋盘自动出现棋子和去掉棋子,提高了棋手下棋体验;避免了棋手网络对弈时对视力的损害。
技术要求1.一种智能电子棋盘,其特征在于:包括电脑或移动终端、棋盘控制器和棋盘,所述棋盘设有棋盘组件和驱动盒,棋盘组件安装于驱动盒内,驱动盒下部固定底板,棋盘控制器安装于驱动盒内,驱动盒上设有与棋盘控制器连接的数字摄像头、开关键、重置键、显示屏和扩音器;棋盘组件包括纵轴拖动装置和19路横轴翻转装置,纵轴拖动装置设有纵向电机,纵向电机通过主纵向传动轴连接主动轮,主动轮通过同步带连接从纵向传动轴上的从动轮,同步带在每路横轴的下方,每路横轴翻转装置的一端均连接有横向电机,且横轴上套设有通过同步带沿横轴移动的滑块,每路横轴上均匀分布有19个内部中空的正三棱柱翻板装置,正三棱柱翻板装置一面为棋格线,另两面分别固定黑棋子和白棋子,正三棱柱翻板装置安装于框架中;棋盘控制器控制棋盘并与电脑或移动终端通过有线或无线传输方式进行数据交互,棋盘控制器设有纵轴电机拖动机构和横轴电机翻转机构,纵轴电机拖动机构连接纵向电机,在横轴方向上拖动滑块到指定纵向位置,横轴电机翻转机构分别连接19路横轴翻转装置的横向电机,带动单独滑块翻转正三棱柱翻板装置。
2.根据权利要求1所述的智能电子棋盘,其特征在于:所述电脑或移动终端上运行围棋或五子棋对弈软件为单机版或者网络对弈版。
3.根据权利要求1所述的智能电子棋盘,其特征在于:所述棋盘控制器设有微控制器、存储器、按键、显示屏接口、蓝牙控制模块、DCMI接口、LED故障和运行显示、辅助电源、限位开关、驱动芯片和驱动电路;驱动电路连接扩音器,DCMI接口连接数字摄像头,1路驱动芯片驱动纵轴拖动装置的纵向电机且为步进电机,19路驱动芯片驱动横轴翻转装置的横向电机。
4.根据权利要求1所述的智能电子棋盘,其特征在于:所述正三棱柱翻板装置内部的中空体与滑块外周匹配,且为除圆以外的其他形状。
5.根据权利要求1所述的智能电子棋盘,其特征在于:所述主纵向传动轴上的主动轮的数量与横轴数量一致,且主动轮通过同步带和从动轮对应。
6.根据权利要求1所述的智能电子棋盘,其特征在于:所述正三棱柱翻板装置两侧和框架侧板上分别固定三个永磁磁铁,用于稳定正三棱柱翻板装置。
7.根据权利要求3所述的智能电子棋盘,其特征在于:所述棋盘控制器通过数字摄像头采集棋盘图像并识别。
8.根据权利要求1所述的智能电子棋盘,其特征在于:所述棋盘连接电源,电源为内置式电池或者外接式电源适配器。
技术说明书一种智能电子棋盘技术领域本技术新型涉及电子棋盘技术领域,具体涉及一种智能电子棋盘。
背景技术在互联网、移动互联网时代,围棋或五子棋电脑网络对弈、移动网络对弈已经成为普遍方式,网络对弈为棋手带来了很大方便,如:易于找到对弈棋手、棋谱记录、复盘、形势判断、人机对弈、棋力训练等等,但也存在下棋立体感不强、因为不是手持棋子下棋造成下棋体验差、长时间注视电子屏幕造成视觉疲劳以及损伤视力的问题。
因此,智能电子棋盘应运而生。
从电脑或移动终端行棋方式划分,目前智能电子棋盘主要分为两类:1.通过机械手代替电脑或移动终端,模仿人手取子、行子;2.棋盘利用如指示灯的方法引导用户为其取子、行子,从而实现人机对弈。
第一种方式:通过机械手代替电脑或移动终端,模仿人手取子、行子,这种方式对机械手精度要求较高,相应的机械手的造价较高,造成此种棋盘价格较高;第二种方式:比如公开号为103785164A的中国专利文献,其公开了一种电子围棋盘,该电子围棋盘包括:棋盘面板,具有N个棋位和传感器阵列,传感器阵列由分别设置在该N 个棋位下的N个传感器组成,且该N个传感器分别检测该N个棋位是否放置有棋子;另外还带有控制器,该控制器的IO口与该N个传感器相连接,该电子围棋盘是在每个放棋子的位置上都加上传感器,可以感知棋子的位置。
但是该电子围棋盘结构未实现自动落子的功能且成本较高,不利于电子围棋盘的推广普及。
又如公开号为101380515B的中国专利文献,其公开了一种电子棋类棋盘与电脑系统进行交互的方法,也就是棋盘与电脑系统通过USB线连接,从而可以把真实的棋盘与PC结合,可以记录棋谱,并连接网络下棋。
但是这种做法有如下弊端:通过USB线与电脑相连接时,这样使用起来很不方便,棋盘还必须摆放在电脑旁边。
同时该专利也没有提出一种经济实用的实现自动落子的方法。
公开号为105833518A的中国专利文献,其公开了一种触摸式棋盘设备及其操作方法,该专利为节约成本,并未在棋盘上安装能够判断棋子位置的传感器。
将该任务转移至用户,用户落子之后需要在棋盘上点击落子的行与列,棋盘计算后将坐标上传至客户端。
与上述两个专利相同,在用户进行人机对弈或者人人远程对弈时,仍需用户将对手棋子落于棋盘上。
该设备虽然成本较低,但操作繁琐,忽视了用户体验感。
实用新型内容针对现有技术中存在的问题,本技术新型的目的在于提供一种智能电子棋盘。
本技术新型解决其技术问题所采用的技术方案是:一种智能电子棋盘,包括电脑或移动终端、棋盘控制器和棋盘,所述棋盘设有棋盘组件和驱动盒,棋盘组件安装于驱动盒内,驱动盒下部固定底板,棋盘控制器安装于驱动盒内,驱动盒上设有与棋盘控制器连接的数字摄像头、开关键、重置键、显示屏和扩音器;棋盘组件包括纵轴拖动装置和19路横轴翻转装置,纵轴拖动装置设有纵向电机,纵向电机通过主纵向传动轴连接主动轮,主动轮通过同步带连接从纵向传动轴上的从动轮,同步带在每路横轴的下方,每路横轴翻转装置的一端均连接有横向电机,且横轴上套设有通过同步带沿横轴移动的滑块,每路横轴上均匀分布有19个内部中空的正三棱柱翻板装置,正三棱柱翻板装置一面为棋格线,另两面分别固定黑棋子和白棋子,正三棱柱翻板装置安装于框架中;棋盘控制器控制棋盘并与电脑或移动终端通过有线或无线传输方式进行数据交互,棋盘控制器设有纵轴电机拖动机构和横轴电机翻转机构,纵轴电机拖动机构连接纵向电机,在横轴方向上拖动滑块到指定纵向位置,横轴电机翻转机构分别连接19路横轴翻转装置的横向电机,带动单独滑块翻转正三棱柱翻板装置。
具体的是,所述电脑或移动终端上运行围棋或五子棋对弈软件为单机版或者网络对弈版。
具体的是,所述棋盘控制器设有微控制器、存储器、按键、显示屏接口、蓝牙控制模块、DCMI接口、LED故障和运行显示、辅助电源、限位开关、驱动芯片和驱动电路;驱动电路连接扩音器,DCMI接口连接数字摄像头,1路驱动芯片驱动纵轴拖动装置的纵向电机且为步进电机,19路驱动芯片驱动横轴翻转装置的横向电机。
具体的是,所述正三棱柱翻板装置内部的中空体与滑块外周匹配,且为除圆以外的其他形状。
具体的是,所述主纵向传动轴上的主动轮的数量与横轴数量一致,且主动轮通过同步带和从动轮对应。
具体的是,所述正三棱柱翻板装置两侧和框架侧板上分别固定三个永磁磁铁,用于稳定正三棱柱翻板装置。
具体的是,所述棋盘控制器通过数字摄像头采集棋盘图像并识别。
具体的是,所述棋盘连接电源,电源为内置式电池或者外接式电源适配器。
本技术新型具有以下有益效果:1、本技术新型实现了电子棋盘自动出现棋子和去掉棋子,实现了较低成本的虚拟场景现实化、智能化;提高了棋手下棋体验;避免了棋手网络对弈时对视力的损害。
2、本技术新型设计的智能电子棋盘无需借助其他人力;操作简单方便;相比于机械手方式成本较低。
附图说明图1是智能电子棋盘整体结构图。
图2是智能电子棋盘正三棱柱翻板立体图。
图3是智能电子棋盘正三棱柱翻板正视图。
图4是智能电子棋盘正三棱柱翻板装置结构图。
图5是智能电子棋盘正三棱柱翻板装置连接图。
图6是智能电子棋盘传动结构图。
图7是智能电子棋盘纵向电机传动结构图。
图8是智能电子棋盘纵向电机传动滑块原理图。
图9是智能电子棋盘控制器原理图。
图10是智能电子棋盘控制器功能电路图。
图中:1-棋盘组件;2-驱动盒;3-开关键;4-重置键;5-数字摄像头;6-显示屏;7-扩音器;8-底板;101-正三棱柱翻板装置;102-滑块;103-横向电机;104-横轴;105-框架;106-棋格线;107-黑棋子;108-白棋子;109-永磁磁铁;110-纵向电机;111-主动轮;112-从动轮;113-同步带;114-主纵向传动轴;115从纵向传动轴。
具体实施方式以下将结合本技术新型实施例中的附图,对本技术新型实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术新型一部分实施例,而不是全部的实施例。
基于本技术新型中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术新型保护的范围。
如图1-10所示,一种智能电子棋盘,包括电脑或移动终端、棋盘控制器和棋盘,棋盘设有棋盘组件1和驱动盒2,棋盘组件1安装于驱动盒2内,驱动盒2下部固定底板8,棋盘控制器安装于驱动盒2内,驱动盒2上设有与棋盘控制器连接的数字摄像头5、开关键3、重置键4、显示屏6和扩音器7;棋盘组件1包括纵轴拖动装置和19路横轴翻转装置,纵轴拖动装置设有纵向电机110,纵向电机110通过主纵向传动轴114连接主动轮111,主动轮111通过同步带113连接从纵向传动轴115上的从动轮112,同步带113在每路横轴104的下方,每路横轴翻转装置的一端均连接有横向电机103,且横轴104上套设有通过同步带113沿横轴104移动的滑块102,每路横轴104上均匀分布有19个内部中空的正三棱柱翻板装置101,正三棱柱翻板装置101一面为棋格线106,另两面分别固定黑棋子107和白棋子108,正三棱柱翻板装置101安装于框架105中;棋盘控制器控制棋盘并与电脑或移动终端通过有线或无线传输方式进行数据交互,棋盘控制器设有纵轴电机拖动机构和横轴电机翻转机构,纵轴电机拖动机构连接纵向电机110,在横轴104方向上拖动滑块102到指定纵向位置,横轴电机翻转机构分别连接19路横轴翻转装置的横向电机103,带动单独滑块102翻转正三棱柱翻板装置101。
电脑或移动终端上运行围棋或者五子棋对弈软件为单机版或者网络对弈版;棋盘控制器设有微控制器、存储器、按键、显示屏接口、蓝牙控制模块、DCMI接口、LED故障和运行显示、辅助电源、限位开关、驱动芯片和驱动电路;驱动电路连接扩音器7,DCMI接口连接数字摄像头5,1路驱动芯片驱动纵轴拖动装置的纵向电机110且为步进电机,19路驱动芯片驱动横轴翻转装置的横向电机103。