c语言编程题 关于国际象棋的问题

编写一个程序,给定起始与目标位置,计算王,后,车,象从起始到目标位置所需的最少步数。 组数:t 0<=t<=20 以下每行是一组测试位置 1:起始和目标位置用字母和数字表示 2:对于输入的每组数据输出王,后,车,象的最少步数 3:如无法到达就输入inf 例:a1到c3 2 1 2 1 f5到f8 3 1 1 inf 王:横、竖,斜都可以走,但每步限走一格 后:横、竖、斜都可以走,每步格数不受限制 车:横、竖可走,格数不限 象:只能斜走,格数不限 谢谢各位大侠帮忙!

我帮你想算法,如果你写不出来……我建议你再好好看书,要不然就放弃学这个吧……
王:计算起始与目标位置的纵坐标之差和横坐标之差,取较大值即为步数;
后:判断起始与目标位置如果在同一行、同一列或者同一斜线,如果是则步数为1,如果不是则为2;
车:判断起始与目标位置是否在同一行或者同一列,是则为1,否则为2;
象:稍微复杂,先判断是否在同色格(颜色可以通过纵横坐标之和的奇偶性判断),如果否,则输出Inf;如果是,则判断起始与目标位置是否在同一斜线,是则为1,否为2。
以上,如果不明白或者需要解释原因请补充或者hi我。
p.s.怎么没有马呢……那个比较有挑战性……
温馨提示:答案为网友推荐,仅供参考