题意简述将一个棋盘翻译为文字表达。如下:大写字母表示白方,小写表示黑方。输出时按照KQRBNP的顺序;棋盘格子编号的表示:从下往上是1~8,从左往右是a~h。遇到相同棋子,白方表示时按从下往上从左往右的顺序,黑方按从上往下从左往右的顺序。输出格式:White: Ke1,Qd1,Ra1,Rh1,Bc1,Bf1,Nb1,a2,c2,d2,f2,g2,h2,a3,e4
Black: Ke8,Qd8,Ra8,Rh8,Bc8,Ng8,Nc6,a7,b7,c7,d7,e7,f7,h7,h6算法分析直接模拟。分行读入棋盘,分析该行字母,将对应坐标记录。此处忽略黑白相同棋子从上往下和从下往上的区别,只需满足从上往下从左往右。输出时黑子按存储的顺序输出即可,白子输出相同棋子时判断,若有相同棋子则先输出行数大的。具体实现见代码。Problem Status: AC。时间0ms,内存388k——————————————————————分割线——————————————————————注意棋子是有规律的,最多16个,但可以不全出现。KQ各一个,RBN最多两个,P8个。程序样例#includevoid outputb(int a[16][2])
{
int i;
if (a[0][0]) printf("K%c%d",'a'+a[0][1]-1,9-a[0][0]);
if (a[1
...
继续阅读
(9)