トップページに戻る    次のC#のサンプルへ    前のC#のサンプルへ

13-20 ロンポスローリングブロック

問題

永岡書店のロンポスローリングブロックを解きます。



下記の2色のいずれかのピースを回転させて移動させ
×に触れることなく、ゴールのマスに重ねればクリアです。

赤ピース
■■

青ピース
■ ■
■■■

Q01 最短手数は2
□□□□□□
□□□□□×
□□□□□□
□□□□□□
□□G□□□
□×G□□□
SS□□□□

Q08 最短手数は5
□□□□□□
□□□□□×
□□□□□□
□□□□□□
G□□□□□
G×□□SS
□□□□□□

Q25 最短手数は6
□□□□□□
□□□GG×
□SS□G□
□S□GG□
□SS□□□
□×□□□□
□□□□□□

Q42 最短手数は42
□□G□G□
□□GGG×
□□□SS□
□□□□S□
□□□SS□
□×□□□□
□□□□□□


ソース

(ハッシュ値で再訪防止の)幅優先探索で解けそう。

回転移動は、遷移する状態IDと、基点座標(左上とする)の変位ベクトル
をListクラスで事前に用意しておく方針とする。


実行結果

イージーキューブの1単位を1.5センチとして、
実機検証可能


解説


16-05 Hedgehog Escape