博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个很有意思公司的题目
阅读量:6548 次
发布时间:2019-06-24

本文共 816 字,大约阅读时间需要 2 分钟。

  hot3.png

中国象棋是一款非常受欢迎的棋类游戏,棋盘由9*10的网格组成,棋子包括:将(帅)、士(仕)、象(相)、马、车、炮、卒(兵)共7种,每种棋子的走法都各不相同。

用坐标(x,y)表示棋盘上的位置,横坐标x为1-9,纵坐标y为1-10。如图,红色即为本方棋子。move(x1,y1)-->(x2,y2)表示将(x1,y1)位置的棋子移动到(x2,y2),棋子的移动规则如下:

通用规则:

1, 禁止移动到棋盘外;

2, 起始位置必须是本方棋子;

3, 目标位置不能存在本方棋子。

棋子规则:

1, 将(帅):每次只能横向或纵向移动一格,无法离开本方“帅府”(棋盘中交叉线所在的位置,共9个点)。

2, 士(仕):每次只能斜着移动(沿图中的斜线),无法离开本方“帅府”。

3, 象(相):按“田”字行移动,即从“田”字格的一个角移动到另一个角,比如:move(3,1)-->(1,3)或move(3,1)-->(5,3)。不能越过“楚河汉界”。当“象眼”(“田”字格中央)位置存在棋子时,不允许移动。

4, 马:按“日”字行移动,即从“日”字格的一个角移动到另一个角,比如:move(2,1)-->(1,3)或move(2,1)-->(3,3)。当“马腿”(“日”字中间2个点中靠近起始位置的点)位置存在棋子时,不允许移动。

5, 车:直线移动,每次可以移动任意长度,但起始位置和目标位置之间不能存在任何棋子。

6, 炮:直线移动,每次可以移动任意长度,但如果目标位置存在对方棋子,则起始位置和目标位置之间必须存在且只能存在1个额外的棋子(可以是己方的,也可以是对方的),否则移动方式与车相同。

7, 卒(兵):每次只能横向或纵向移动一格,但不能“后退”(向本方移动)。

请提供一个API,判断move(x1,y1)-->(x2,y2)操作是否符合规则。

转载于:https://my.oschina.net/UBW/blog/760221

你可能感兴趣的文章
Windows7搭建FTP服务器要点
查看>>
Linux 系统资源查看
查看>>
分步LVS: 详解利用Keepalived+Nginx解决站点高可用性
查看>>
Cocos2d-x3.2 UserDefault用户数据
查看>>
kvm虚拟化
查看>>
ios图片加水印或文字
查看>>
我的友情链接
查看>>
使用Python爬取糗事百科热门文章
查看>>
4月18日
查看>>
6月26日
查看>>
Linux学习笔记(1)
查看>>
SVM入门(二)线性分类器Part 1
查看>>
OpenGL入门学习[二]
查看>>
kafka单机版环境搭建
查看>>
NO.36 敏捷之旅2012年度11月17日深圳站!
查看>>
草编制品为何受青睐
查看>>
互联网女皇2013互联网趋势报告
查看>>
windows下实现mysql备份至异地,并结合计划任务实现自动管理,删除之前的备份。...
查看>>
Spark源码编译
查看>>
钉钉消息监控
查看>>