15パズルの少し小さいサイズの11パズルを解くプログラム
CodinGameの11-puzzle
一年前に16%しか解けなかった難問にリベンジをしようとして66%で断念
これはきっと解法を知らないと時間内には無理ではないだろうか?
一年前は位置があった所を1点換算の評価値でパスファインディング
今回は、各数値のズレを距離換算の評価値
またズレは都度計算せず差分だけを入れ替えるような形にする。
差分も2つの位置だけで辞書で引っ張れるようにあらかじめ設定。
最短で行こうとしているけど、本当に最短かは不明
全問解けるようにはなったけど、制限手数以内まではいかない。
たぶんちょっとした勘違いがみつからないのだろう
(差分計算でも基準を動かしてしまうよくある見つかりにくいミスに散々悩まされる)
どうしても解けないので、逆に最長になる局面を作成して、
ほこたてごっこをしてみました
バグを取るためにいれた表示、コメント化して残してみました。
プログラムって実際そんなに簡単に、うまくはいかないです。