- Description
国际象棋是一种二人对弈的战略棋盘游戏。国际象棋的棋盘由8×8共64个黑白相间的格子组成,从白棋的角度来看,从左往右为A列至H列,从下往上为第1行至第8行。黑白棋子各16枚,分为王(King)、后(Queen)、车(Rook)、象(Bishop)、马(Knight)、兵(Pawn)六种。其中马(Knight)这种棋子(在西方被成为骑士)的走法与中国象棋中的“马”类似,骑士每一步先横走或直走两格,再向侧面走一格,骑士途经的格子都必须在棋盘以内。
现在给出一枚“骑士”所在的格子以及它要前往的格子的坐标(由一个大写字母和一个数字表示),请你计算出它最少需要走几步。
- Input
多组测试数据,每组数据占一行,给出起点和终点的坐标。
- Output
每组数据输出一行“From * to * needs at least # steps.”,其中两个‘*’分别代表起点和终点的坐标,‘#’为最少需要的步数,若不超过一步,step后不需要加上s。
- Sample Input
A1 C2
A1 E3
- Sample Output
From A1 to C2 needs at least 1 step.
From A1 to E3 needs at least 2 steps.
#include<iostream>
using namespace std;
#define Maxn 64
#define Inf 1000
int step[

这是一个关于国际象棋骑士(Knight)移动的问题,需要计算从起点到终点最少需要走多少步。输入包含起点和终点坐标,输出是最少步数。样例输入包括A1到C2和A1到E3,分别需要1步和2步。
最低0.47元/天 解锁文章
475

被折叠的 条评论
为什么被折叠?



