Stage 7 入力の棋譜を駒の動きに変換する
チェスのプログラミング第 7 ステージ、ここではユーザーが入力した棋譜を解読し、コンピューターで使用できる形にします。
MENU
- 棋譜の中でもいらない文字はあります。どうせろくなことになりませんから、最初に不要な文字を削除してしまいましょう。
- 棋譜のように決まりきった型がある文字列を扱うには正規表現が便利です。これを使って情報を引き出していきます。
- 動かす駒を棋譜から判定します。ポーン以外は明記されていますし、ポーンは省略されます。
- 移動元のマスは明記されていません。ヒントになるような情報をかき集めましょう。
- 移動先のマスは明記されていますし、プロモーションもする場合はしっかり書かれていますから、それぞれ特定します。
- 移動元のマスとして考えられる候補を列挙します。
- 列挙された移動元の候補について、これまで得た情報から絞り込み、最終的には一つに絞り切ります。
- 勝敗を表す棋譜から、勝敗情報を引き出します。
- キャスリングの棋譜は非常に独特ですから、特に場合分けしてあげる必要があります。