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