您应该编写一个程序或函数,该程序或函数接收代表棋盘的字符串,并仅以棋子作为输入和输出,或者返回是否可以在棋盘上进行任何捕获。
输入采用类似于FEN的表示法,描述白色和黑色棋子的位置,没有其他片段。您应该确定是否有可以捕获敌人的棋子。
每个等级都有描述,从等级8开始到等级1结束;在每个等级内,从文件“ a”到文件“ h”描述每个方块的内容。每个典当都由一个字母标识(白色典当=“ P”,黑色典当=“ p”,)。使用1到8的数字(空白方块的数量)标注空白方块,“ /”分隔等级。(部分取自维基百科)
例如
8/pppppppp/8/8/4P3/8/PPPP1PPP/8
描述董事会
--------
pppppppp
P
PPPP PPP
--------
如果一个黑色的棋子位于对角线的上方(黑色是左上或右上),则一个黑色的棋子可以捕获一个黑色的棋子(如果白色的棋子位于对角线的下方),则黑色的棋子可以捕获一个白色的棋子。左下或右下)。不应考虑其他捕获动作(绕过)。
输入项
- 一个FEN样串组成的字符
12345678pP/
。 - 输入内容描述了有效国际象棋游戏位置的棋子。这意味着(除其他更复杂的约束之外)每侧最多有8个棋子,等级1和8上没有棋子。
输出量
例子
具有真实输出的输入(每行一个)
8/7p/6P1/8/8/8/8/8
8/8/p7/1P6/3P3p/8/8/8
8/2P5/8/4P1p1/2p2P2/3p4/3p1P2/8
8/P7/8/5P2/2pp4/3P2p1/3pP3/8
8/P7/p7/p1P1P3/1P3p2/8/1p6/8
8/4p1P1/2P2P1P/2p1pPpp/8/6P1/pP1p4/8
输入具有虚假输出(每行一个)
8/8/8/8/8/8/8/8
8/7P/6p1/8/8/8/8/8
8/7p/7P/8/8/8/8/8
8/pppppppp/8/8/8/8/PPPPPPPP/8
8/p7/8/1p6/5P2/8/8/8
8/p7/P7/2P1p1p1/2p5/8/PP6/8
这是代码高尔夫球,因此最短的入场券获胜。
7P
这意味着该典当位于最后的第8个文件中。(尽管该图是不正确的,但我已将其纠正。)
8/pppppppp/8/8/8/7P/PPPP1PPP/8
吗?