跳马
无论在中国象棋还是国际象棋中“马”都是走“日”字的。比如我们把国际象棋的棋盘的左上角的坐标设为(0,0),它右边格子的坐标为(0,1),下边的格子坐标为(1,0),右下格子的坐标为(1,1),其它点的坐标以此类推。如果马现在位于(4,4)上,那么它一步能走到的格子的坐标分别为(3,2)、(2,3)、(2,5)、(3,6)、(5,6)、(6,5)、(6,3)、(5,2),现在我们把这八种走法分别标记为1、2、3、4、5、6、7、8,也就是说当输入为1是,代表马向左上偏下的点走,输入为2时代表马向左上偏上的点走,其它依次类推。现请你写一段程序,记录马在棋盘上行走的路线。
输入:
先是八行,每行为长度为8的字符串,代表棋盘上每个格里的字符(只包含大写字母)。
第9行是2个整数,代表马的初始位置。
第10行是一个字符串(长度大于0小于30),代表马每一步如何走。测试数据保证合法,且保证不存在走到棋盘以外的情况。
输出:
只有一行,依次为马行走路线上的格子里的字符(包括马的初始位置)。
输入样例
HIJKLMNO
PQERSTUV
WDXYLZAB
CDEFGHLI
LJKLMNOP
QRRSTUVO
WXYZOQWE
RTYUIOWP
0 0
555671113
输出样例
HELLOWORLD
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{
char st[8][10];
int i,j,x,y;
for(i=0;i<8;i++)
gets(st[i]);
scanf("%d%d",&x,&y);
getchar();
char ch[40],re[40];
gets(ch);
re[0]=st[x][y];
for(i=0;ch[i];i++)
{
if(ch[i]=='1')
{
x--,y-=2;
re[i+1]=st[x][y];
}
else if(ch[i]=='2')
{
x-=2,y--;
re[i+1]=st[x][y];
}
else if(ch[i]=='3')
{
x-=2,y++;
re[i+1]=st[x][y];
}
else if(ch[i]=='4')
{
x--,y+=2;
re[i+1]=st[x][y];
}
else if(ch[i]=='5')
{
x++,y+=2;
re[i+1]=st[x][y];
}
else if(ch[i]=='6')
{
x+=2,y++;
re[i+1]=st[x][y];
}
else if(ch[i]=='7')
{
x+=2,y--;
re[i+1]=st[x][y];
}
else if(ch[i]=='8')
{
x++,y-=2;
re[i+1]=st[x][y];
}
}
for(i=0;i<strlen(ch)+1;i++)
printf("%c",re[i]);
printf("\n");
return 0;
}
相关阅读
三个常见英文缩写 i.e. e.g. etc. i.e. and e.g. are both abbreviations for Latin terms. i.e.和e.g.都是拉丁语缩写。 i.e. s
i.e. 是拉丁文 id est 的缩写,它的意思就是“那就是说,换句话说”,等同于“that is,in other words” ,目的是用来进一步解释前面所说
一次PEDIY---修改Windows自带的calc.exe (OD Switch大
转自看雪论坛:http://bbs.pediy.com/thread-68066.htm 作者:stalker【文章标题】: 一次PEDIY---修改Windows自带的calc.exe【文章
(-215:Assertion failed) !_src.empty() in function
(-215:Assertion failed) !_src.empty() in function 'cv::cvtColor' Traceback (most recent call last):File "E:/project/cv_
近期因为本本奇慢无比而对系统采取了全面大清洗措施,对一干无用程序和系统垃圾进行了优化清理。 在整理系统进程的时候,发现系统经