国际象棋的棋盘是黑白相间的 8 * 8 的方格,棋子放在格子中间。

王、后、车、象的走子规则如下:
 王:横、直、斜都可以走,但每步限走一格。
 后:横、直、斜都可以走,每步格数不受限制。
 车:横、竖均可以走,不能斜走,格数不限。
 象:只能斜走,格数不限。
写一个程序,给定起始位置和目标位置,计算王、后、车、象从起始位置走到目标位置所需的最少步数。

输入数据

第一行是测试数据的组数t(0 <= t <= 20)。以下每行是一组测试数据,每组包括棋盘上的两个位置,第一个是起始位置,第二个是目标位置。位置用"字母-数字"的形式表示,字母从"a"到"h",数字从"1"到"8"。

输出要求

对输入的每组测试数据,输出王、后、车、象所需的最少步数。如果无法到达,就输出"Inf"。

输入样例

2

a1 c3

f5 f8

输出样例

2 1 2 1

3 1 1 Inf

#include <stdio.h>
#include  <math.h>int main()
{int n,i;char begin[5],end[5];scanf("%d",&n);for(i=0;i<n;i++){scanf("%s%s",begin,end);int x,y;x = abs(begin[0] - end[0]);y = abs(begin[1] - end[1]);if(x == 0 && y == 0) printf("0 0 0 0\n"); else{if(x < y) printf("%d", y); else printf("%d", x);if(x == y || x == 0 || y == 0) printf(" 1");else printf(" 2");if(x == 0 || y == 0) printf(" 1"); else printf(" 2");if(abs(x - y) % 2 != 0) printf(" Inf\n");else if(x == y) printf(" 1\n");else printf(" 2\n");}}return true;
}

国际象棋的棋子步数问题相关推荐

  1. 【面试题】类似国际象棋的棋子移动实现

    都将近年关了,居然还有人找我帮做第一轮的笔试题,与其它第一轮在线做题相比,这边比较新颖的是:居然是给一个Solution,要求按例子实现代码.可能这是外企比较流行的做法吧,题目大致是实现一个8*8的棋 ...

  2. 国际象棋马走日(华科软院上机)

    问题描述:假设国际象棋棋盘有5*5共25个格子.设计一个程序,使棋子从初始位置(棋盘编号为1的位置)开始跳马,能够把棋盘的格子全部都走一遍,每个格子只允许走一次.要求: 1):输出一个解(用二维数组来 ...

  3. UE5入门第二周总结:基于蓝图的国际象棋的实现

    在C++的学习中,这是一个入门级别的项目.我们的目标是灵活运用蓝图的特性和强大的可视化功能,做出这一入门级项目的同时,思考如何优化并改进算法,并尽可能的用面向对象的方法实现,用蓝图中的继承和多态简化编 ...

  4. 中国象棋和国际象棋的区别

    1.我认为最大的区别是中国兵走到底就是老卒,基本无用:而国际兵走到底想变啥就变啥,可以变成力量最大的后. 2.中国象棋的老将只能在九宫活动,且不能斜走:国际象棋的王可以满世界走,且可以斜走,相同的是一 ...

  5. 人工智能重点汇总(搜索策略、博弈、贝叶斯、SVM、神经网络、弧相容、SVM、决策树、反向传播、卷积神经网络)

    前言:智能Agent 理性Agent:信息手机 + 自主学习: 任务环境(PEAS)四要素: 性能: 环境: 执行器: 传感器: ❗ 环境的性质 环境的性质决定了agent的设计 最难处理的情况: ...

  6. 数据结构-马走日的解法

    [题目来自灰灰考研] (2018上海交通大学上机题)(2017华中科技大学上机题) 假设国际象棋棋盘有5*5共25个格子.设计一个程序,使棋子从初始位置(如图)开始跳马,需要将棋盘的格子全部都走一遍, ...

  7. 八数码问题及A*算法

    一.八数码问题 八数码问题也称为九宫问题.在3×3的棋盘,摆有八个棋子,每个棋子上标有1至8的某一数字,不同棋子上标的数字不相同.棋盘上还有一个空格,与空格相邻的棋子可以移到空格中.要求解决的问题是: ...

  8. 花式看超级碗 人工智能、大数据在碗里

    "超级碗"可不是一个大碗!!!超级碗(Super Bowl)是美国国家美式足球联盟(也称为国家橄榄球联盟)的年度冠军赛,胜者被称为"世界冠军".超级碗一般在每年 ...

  9. 再现神人!仅仅只花4天半就解开了史上最难密码,这下整个圈子都炸开了.........

    全世界只有3.14 % 的人关注了 爆炸吧知识 鲁迅先生曾说,记录这东西,就是用来打破的. 前阵子程序员圈子一定热呼的不可开交,咋回事?还不是因为有个程序员妹子捅出了一个大篓子. 事情是这样的,在德国 ...

最新文章

  1. 测试算法(性能)的工具类
  2. 零基础Python学习路线图,小白的进阶之路!
  3. 【PC工具】chrome浏览器插件vimium:传说上网可以不用鼠标。VIM入门工具,妈妈再也不用担心我学不会vim了...
  4. just found out why the group by does not work for my app, but work for SCN exercise
  5. 存储器芯片巨头动态观察:三星、美光、SK海力士都在做什么?
  6. Myeclipse连接Mysql数据库时报错:Error while performing database login with the pro driver:unable...
  7. Vue-cli3 项目搭建和启动
  8. 西瓜书+实战+吴恩达机器学习(二十)随机算法(拉斯维加斯方法、蒙特卡罗方法)
  9. 瞎说一波3种基本背包问题【希望巨巨们指出错误】
  10. delphi webservice 如何 共享 变量_医疗质量|如何实现非药物医嘱闭环管理?
  11. Java - “JUC”原子类
  12. PHP使用echo输出标签设置CSS样式问题
  13. 【转】数组指针指针数组
  14. 452.用最少数量的箭引爆气球
  15. 深入浅出学习CAN系列-了解CAPL编程语言
  16. Spring 框架学习—控制反转(IOC)
  17. 基于物联网技术的校园智慧消防管理平台-Susie 周
  18. 药监局,药品监督管理局
  19. .Net4.0 任务(Task)
  20. 00 欧几里得算法编程实现

热门文章

  1. jquery-countdown插件
  2. Java Web 03 — JDBC_02(数据库连接池_C3P0_Druid、JdbcTemplate)
  3. 通过SEO实战成为SEO优化大佬
  4. 海思3559A QT 5.12移植(带webengine 和 opengl es)
  5. 拍拍贷第四季度净利润7.746亿元 开盘大涨逾9%
  6. 什么是 数字签名 数字证书 数字信封
  7. CAN通信中匹配电阻不宜过多
  8. 8,16,32位单片机的区别
  9. 【matplotlib】 findfont: Font family [‘Times New Roman‘] not found. Falling back to DejaVu Sans.
  10. 多服务环境下定时任务重复执行问题解决方案