#P19. Bishop Attack!!(Mid Version)
Bishop Attack!!(Mid Version)
题目描述
此题在Easy Version中多个1个碍事的白士兵
在国际象棋中,主教只能在棋盘中斜着走,移动的格数不限,但是不能越过其他棋子; 现在在一个空的棋盘中放置着一个白主教和一个黑国王,还有 个白士兵,假设国王不能移动,士兵也不能移动,主教最少需要移动几步可以吃掉国王,主教的移动路线必须要绕过这些白士兵,输出最少移动的步数,如果不能,输出 。
在国际象棋中,棋子的位置一般用一个 的小写字母表示所在列数(从左到右),和一个 的数字表示所在行数(从下到上),
输入格式
两行,每行都有一个小写字母和一个数字,第一行是主教的在棋盘中的位置,第二行是国王在棋盘中的位置;
随后输入 行,表示有 个士兵在棋盘上;(该士兵只会出现在主教周围)
每行都有一个小写字母和一个数字,表示士兵的位置。读入的时候须注意每行后面的换行。
我们可以注意到一行只可能有两个字符,可以用一个 char
类型的数组和 %s
读入,这样可以忽视掉末尾的换行,代码如下:
char str[2];//定义一个长度为2的char数组
scanf("%s",str);//读入一行中的两个字符,第一个字符是str[0],第二个字符是str[1]
读入方法不唯一,请自行选择。
输出格式
一个数字,主教最少需要移动几步可以吃掉国王,如果不能,输出 。
样例1
e4
g6
f5
3
相关
在下列比赛中: