考虑一个象棋残局,个中红方有n(2=<n<=7)个棋子,黑方只有一个将。红方除了有一个帅(G)之外,还有3种可能的棋子:车(R),马(H),炮(C),并且须要考虑“憋马腿”与将帅不能照面(将、帅如果在同一条直线上,中间又不隔着任何棋子得到情形下,走子的一方得胜)的规则。输入所有棋子的位置,担保局势合法并且红方已将军。你的任务是判断红方是否已经把黑方将去世。详细规则可参看原题目。
须要考虑的几个点:
1、须要读取多个测试例;

2、将帅照面的情形,比如初始状态就将帅照面了,或走一步照面;
3、炮必须隔一个子;
4、“憋马腿”的情形;
剩下便是个人实现的细节差异了。
个人代码实现如下:
主函数循环读取数据,对每个测试例进行判断,并输出结果,调试过程中可以利用freopen将输入和输出记录在文件中。
黑方将的可走位置利用查表的办法探求。
检讨是否将去世,飞将、车、炮和马。
检讨飞将的情形。
检讨马是否能将去世黑将。
详细完全代码如下:
须要源代码的可以私信,私信发象棋源码剖断