トップページに戻る
次の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センチとして、
実機検証可能
解説