FEN记谱法
* * * *
拉格朗日计划
* * * *
FEN记谱法

FEN记谱法(Forsyth–Edwards Notation)是国际象棋的标准记谱法之一。

使用该法,起始局面可以记录为

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 


第一个空格左边的字符串描述了局面情况,在该字符串中:

棋盘从上到下的八行依次表示为用“/”隔开的八个子串,每个子串记录了每行从左到右的子力情况。

白棋用大写字母"PNBRQK"表示,黑棋用小写字母"pnbrqk"表示,这些字母分别取自棋子的英文单词Pawn, kNight, Bishop, Rook, Queen, King,表示兵、马、相、车、后、王。

空位用数字表示,数字的值即连续的空位数量。

对给定的FEN记录,输出对应的国际象棋局面,棋子用对应Unicode字符表示,空位用空格表示(无需区分底色)。例如以上记录对应的输出是:

♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
  
  
  
  
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖


本题难度:



解答

作字符串查找即可,利用find函数找不到值时会返回-1的特性处理例外。

最终代码只有两行。

代码长度:162字节 vs. 全站第一:118字节。

import sys
for a in sys.argv[1:]:print("".join("♜♞♝♛♚♟♖♘♗♕♔♙\n "["rnbqkpRNBQKP/".find(s)]*("2345678".find(s)+2)for s in a.split()[0]+"/"))