中国象棋是一款非常受欢迎的棋类游戏,棋盘由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)操作是否符合规则。