今回は仕様にはまったケース
昔からあるゲームは生き残るために独特のルールが存在していて、プログラム化泣かせだったりします。
https://www.codingame.com/training/hard/chess-moves-on-fen-position
チェスの指し手からボードの状態を作成する問題
まずFENというボード状態を簡易圧縮したものを解凍するルーチンと最期に圧縮するルーチンから作成
初めての時は悩みましたが一度作ったことがあるのでサクッと作成
持ち駒というルールがないので、駒の基本的な移動もわりとあっさり実装できました。
そしてキャッスリング これが最初の難関
王様が2つ動いていればキャッスリングなのであとはゴリゴリ
次がアンパッサン なんか知らない仕様が出てきました(キレイに忘れていた)
前の手とかをみないといけない困ったちゃん。
面倒なロジックを後回しにすると痛い目に合います。関数とか見直しです。
最後にはまったのはプロモーション。ポーンが相手陣一段目までいくとクイーンになるというものです。
SUBMIT時にどうしても解けないので、調べてみるとプロモーション時の記述の最後がNだとナイトに昇格するルールがありました。
問題文に記述一切なく、SUBMIT時の突如発生するルール、これはニャイ。(28行目)