多用的象棋系统-Arduino中文社区 - Powered by Discuz! Archiver

xp2xp 发表于 2019-4-30 00:42

多用的象棋系统

一、设计背景这个软件设计之初是希望不用人手,直接用语音控制,可以对局走棋。但随着设计程序的编写,逐渐偏离了初衷,变成了人机智能下象棋工具。
二、对局的双方人:执红,可以通过触屏或者语音输入(目前语音输入这块还有点问题,可以用串口输入)机:执黑,采用的是一块RT1052作为主控,计算局面,并且选取最优步。
三、象棋的棋子和走棋规则:这里就不水字数了。简单说:红先黑后、轮流走棋、杀将算赢。
四、喊棋的规则:从自己方的右手边开始算“路”分别为1路~9路,棋子在哪一路上,就喊棋子名+路号,如炮二;走棋的规则有进、平、退,其中车、兵、帅、炮的进退都是以本方棋子移动步数计算,平则是走到目标的路数,如平五;马、象、士在任何时候,都是以路数为目标的。如果同一路上有多个棋子,一般采用“前”、“后”来区分,如“前车平三”、“后马退二”。当兵在同一纵线达到三个,用前中后来区分,达到四个,用前二三四区分,达到5个,用前二三四五区分。当兵在两个纵线都达到两个以上,此时省略兵,举例:前九平八。
五、语音设计规则共需要分析出的语音识别包括22个单字,具体为棋子:R-车-114Q-马-113S-炮-115P-相-112O-士-111T-兵-116N-帅-110数字:1-492-503-514-525-536-547-558-569-57动作:A-进-97B-平-98C-退-99方位:X-前-120Y-后-121Z-中-122
六、AT指令集AT+ASRADD=yi,49AT+ASRADD=er,50AT+ASRADD=san,51AT+ASRADD=si,52AT+ASRADD=wu,53AT+ASRADD=liu,54AT+ASRADD=qi,55AT+ASRADD=ba,56AT+ASRADD=jiu,57AT+ASRADD=ju,114AT+ASRADD=ma,113AT+ASRADD=pao,115AT+ASRADD=xiang,112AT+ASRADD=shi,111AT+ASRADD=bing,116AT+ASRADD=jin,97AT+ASRADD=ping,98AT+ASRADD=tui,99AT+ASRADD=qian,120AT+ASRADD=hou,121AT+ASRADD=zhong,122
七、工程1、各种棋子的走棋规则根据棋子类型不同,判定目标地址和本棋子之间是否可以走。以车为例,规则是横、竖都可以行进,但不能越过棋子,可以吃掉对方目标地点的棋子。2、棋子生存游戏开始后,棋子不被吃掉之前,都认为是生存的。可以指定这个棋子位置和类型。3、胜负本方(红)帅被吃掉为负,吃掉对方(黑)将为胜;时间耗尽为负,对方时间耗尽为胜。在本项目中,未考虑和局的计算。
八、代码效果链接:https://pan.baidu.com/s/1oB3Cy_AgsSAmZrMwO_0Sgw 提取码:8cgt
页: [1]
查看完整版本: 多用的象棋系统