入力および出力としてポーンのみを含むチェスボードを表す文字列を受け取るプログラムまたは関数を作成する必要があります。または、ボード上でキャプチャが可能かどうかを返します。
入力は、他のピースが存在しない白と黒のポーンの位置を記述するFENのような表記法です。敵を捕まえることができるポーンがあるかどうかを判断する必要があります。
ランク8から始まり、ランク1で終わる各ランクが記述されています。各ランク内で、各正方形の内容はファイル「a」からファイル「h」まで記述されます。各ポーンは1文字で識別されます(白いポーン=「P」、黒いポーン=「p」、)。空の四角は1〜8の数字(空の四角の数)を使用して示され、「/」はランクを区切ります。(一部ウィキペディアから取得)
例えば
8/pppppppp/8/8/4P3/8/PPPP1PPP/8
ボードについて説明します
--------
pppppppp
P
PPPP PPP
--------
白のポーンは黒のポーンが斜めに上にある場合(黒は左上または右上)、黒のポーンは白のポーンが下から斜めにある場合(白は白左下または右下)。他のキャプチャー移動(en passant)は考慮しないでください。
入力
- A FENの文字からなる文字列様
12345678pP/
。 - 入力は、有効なチェスのゲーム位置のポーンを記述します。これは、(他のより複雑な制約の中でも)各側に最大8つのポーンがあり、ランク1と8にはポーンがないことを意味します。
出力
例
真実の出力を持つ入力(1行に1つ)
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
偽の出力を伴う入力(1行に1つ)
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
か?