您的位置 首页 编程

智能棋盘的研讨与规划

本文主要介绍了在不改变棋手弈棋习惯的前提下,将我国传统智力娱乐项目中国象棋与电子技术、单片机应用技术、软件编程技术等相结合,实现信息记录、规则裁决的智能化和自动化。智能棋盘是以单片机技术为依托,合理配

作者 王天睿(辽宁轨道交通职业学院,辽宁 沈阳 110023)

  摘要:本文首要介绍了在不改动棋手弈棋习气的前提下,将我国传统智力文娱项目中国象棋与电子技能、单片机使用技能、软件编程技能等相结合,完结信息记载、规矩判决的智能化和主动化。智能棋盘是以单片机技能为依托,合理装备选型,将多个模块整合到一同,运用高科技手法完结棋手弈棋的彻底智能化。

  智能棋盘体系将改动旧式象棋许多坏处,进步竞赛的品尝和层次,一起减轻棋手担负,进步对局质量,完结主动收集对局信息发送到收集服务器进行处理的功用。详细包括主动计时、计着子数、语音提示、判别行棋是否契合规矩等功用。

  该体系是以单片机为中心,运用光电检测技能,具有功用牢靠、价格低廉、易于功用扩展等功用,可用于竞技竞赛,家庭文娱。

  关键词中国象棋;单片机;智能体系;光电传感技能

  0 导言

  此文以现代传统的中国象棋为布景,为完结中国象棋弈棋的智能化、主动化,首要研讨了一种以中国象棋为依托来完结智能棋盘的软硬件规划。

  内行棋的进程中,运用光电管进行持续的扫描,依据每个棋子品种码进行判别,依据每个棋子方位码进行定位,而且了解棋手依照替换的办法进行行棋,然后确认棋子的移动办法的。为了确认棋子的移动是否违规,笔者为每一类棋子专门设定了程序。在竞赛没有开端时,就要设置好两边的行棋规矩用时,假如内行棋的进程中起手规矩时刻到,就会被断定为违规,本棋盘规矩当棋手落子后,对方有必要在100
s内完结行棋(总步数不超越99步)。这样就不必棋手每次走完棋进行人工按压计时(计时器),选用主动化的技能来计算子数,替换到人工岗位,具有全主动功用,极大的节省了竞赛时的人工成本。

  软件规划首要为行棋程序规划,行棋程序首要由计着子数程序、计时器程序、吃棋程序、走棋程序、各棋子行棋规矩判别程序等组成。

  软件规划部分要在棋局开端前完结初始化设置,以及棋盘各类棋子的编码设置。开端按键按下后,由主程序不断检测8255所得到的棋盘各方位的改动,依据不同的棋子的改动,转去履行相应的棋子走子或吃子等相关子程序。

  行棋程序中包括行棋规矩是:①红先黑后;②棋子落定后,不得悔棋;③吃棋拿棋后,不得悔棋。

  吃棋时,棋手应该先拿起己方棋子,然后再拿起想要吃的棋子,再将自己的棋子放在被吃棋子的方位上。如“炮”吃“卒”,应该先拿起自己的“炮”,然后去拿起对方的“卒”,最终将自己的“炮”放在对方本来的“卒”的方位上。

  在三条规矩之中,第三条规矩能够进行二选一,为了满意用户运用的需求本程序设定为先拿起自己的棋子去掩盖敌方棋子。

  当一方拿起自己的棋子,落在无棋子的方位上时,即为走棋;调用走棋程序,一起要调用棋子行棋规矩判别程序,判别是否违规;如违规即报警;如无违规矩记载该棋子的方位编码。当一方拿起自己的棋子,再拿起对方的棋子,并将自己的棋子落在该新方位上时,即为吃棋;调用吃棋程序,一起要调用棋子行棋规矩判别程序,判别是否违规;如违规即报警;如无违规矩记载该棋子的新方位编码。

  棋子的类型编码是始终不变的,方位编码是跟着行棋的进行而改动的。在开端键按下后,不断检测棋盘数据并与初始值进行比较,直至有改动,即表明有棋子移动。由移动的方位码可知是什么棋子在移动。

  软件规划流程图如图1所示。

  1 棋盘各点的检测扫描程序

  此程序的功用是对棋盘初始值的检测,以及对各棋子方位改动的记载是整个软件规划部分的中心,本部分程序如能顺利完结,其他的软件部分也能便利的解决。棋子的类型编码是完结设定好的,而方位编码是跟着行棋的进行而不断改写的。在开端键按下后,不断检测棋盘数据并与初始值进行比较,当棋子方位编码产生改动时,即阐明有棋手行棋。由移动的方位码可知是什么棋子在移动。

  2 8279键盘显现驱动程序

  在键盘显现模块中,共有8个数码管,前四个与后四个各分为一组,前两位显现红方棋手的每步行棋剩余时刻,三、四位显现红方棋手的着子数,五、六位显现黑方棋手每步行棋剩余时刻,七、八位显现黑方棋手的着子数。这样就减轻了裁判员的担负,完结主动判别、计时的功用。该部分程序首要完结对走棋剩余时刻的显现,以及走子数的显现。

  3 下棋子程序规划

  当棋手开端下棋时,下棋运用的程序共分为:走棋程序、吃棋程序、行棋规矩。三种程序一起调用。下面以我方走马和走车分别为例进行阐明。

  3.1 马行棋规划

  例如,马的行棋规矩为可走日,行走规模为全棋盘。如图2,能够向23456789中八个方向走,落地方位有对方剂时能够直接吃掉,而不可向1处走,为蹩马腿。

  当棋手走马时,流程图如图3所示。详细地,需求考虑如下状况:

  ①依据是否仅有一个子动作判别调用走棋程序仍是吃棋程序;

  ②若仅有一个子动作则调用走棋程序;

  ③再依据行棋规矩判别是否契合马的行棋规矩,判别办法为横纵坐标中有一项移动两格另一个移动一格,如不契合则报警;

  ④假如没有犯规记载则主动将马的程序编码及移动方位进行贮存;

  ⑤若有两个棋子方位产生改动,则断定调用吃棋程序,当棋手吃完棋后,再依据行棋规矩判别是否契合,如若不契合则主动报警;

  ⑥假如没有犯规记载则主动将马的程序编码及移动方位进行贮存;

  ⑦一起要注意依据事前设定的程序,吃棋时需求先拿起自己的子再去拿对方的子。

  详细断定进程为,先依据马的方位编码断定动作的子为马。然后依据行棋规矩调用马的行棋规矩,只能走日,即纵坐标移动2,横坐标移动1;或横坐标移动2纵坐标移动为1,假如不契合马的行棋规矩则报警,假如契合则断定是否存在蹩马腿现象,存在则报警,假如不存在则持续;最终断定此步为吃棋仍是行棋,完毕。

  3.2 车行棋规矩

  车走棋时规划程序同理:车的行棋规矩较为简略,只能直走,能够横向直走也能够纵向直走前后左右均可走,中心遇到对方剂能够直接吃掉,前后左右为对方剂能够直接吃掉。

  ①首要断定车为纵向行走仍是横向行走,假如为纵向行走则记载下纵向行走的方位编码进行贮存;

  ②然后再进行断定是行棋仍是吃棋,若仅有车一子进行移动则为行棋,调用行棋程序;

  ③若行棋完毕方位还有其他子被代替则为吃棋,调用吃棋程序;

  ④假如呈现横纵坐标都改动、或许都不改动、或其他方位子消失等不契合行棋规矩状况呈现时则报警。

  3.3 炮行棋规矩

  炮的行棋规矩较为特别,走棋时能够直行,纵横方向皆可。吃棋时中心有必要隔一个子;炮可向四个方向移动,也能够吃隔子吃子。这样程序规划时需考虑以下过程:

  ①先判别是走棋仍是吃棋,判别横纵坐标是否只要其间一个有改动;

  ②然后判别方针方位是否有子,假如有子则调用吃棋程序,假如没有子则调用走棋程序;

  ③将走棋的炮坐标和方针方位的子以代码方式贮存;

  ④不契合行棋规矩的报警。

  4 定论

  本次智能棋盘规划,在硬件选用上较为合理,各个芯片均选用市面上常常见到的常用芯片,而且功用安稳,操作简略,便利,全体电路调配较为完善。

  本次规划标题现已完结的功用有:

  ①行棋违规主动报警。

  ②主动回忆着子数。

  ③显现走棋剩余时刻等。

  因为篇幅的约束笔者删除了棋盘与棋子编码,仅列出了车马炮三种棋子的行棋程序,本课题作为一项智能体系的研讨的理论与测验,与实践使用还有一段距离。跟着微电子技能,软件规划技能和传感器技能的开展。此项目也将会有更大的开展空间,和更多的功用完善。

  参考文献

  [1]徐爱钧.智能化丈量操控外表原理与规划[M].北京:北京航空航天大学出书社.

  [2]孙传友,等.感测技能与体系规划.北京:科学出书社, 2004.

  [3]戴梅萼,史嘉权.微型计算机技能及使用(4版).北京:清华大学出书社,2001.

  [4]马群生,温冬婵,等.微型计算机技能.北京:清华大学出书社,2006.

  [5]秦维佳,侯春色,等.C/C++程序规划教程.北京:机械工业出书社,2007.

  [6]浦昭邦.光电测验技能.北京:机械工业出书,2004.

  [7]马忠梅,等.单片机的C言语使用程序规划.北京:北京航空航天大学出书社,2007.

  [8]向红.51系列单片机使用与实践教程.北京:北京航空航天大学出书社,2008.

  [9]PCI Special Interest Group. PCI Local Bus Specification,1999.

  [10]Barry B B.The Intel Microprocessors: 6th ed,2005.

本文来源于科技期刊《电子产品世界》2019年第2期第52页,欢迎您写论文时引证,并注明出处

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/129689.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部