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

21-09 Little Red Riding Hood

問題

SmartGamesのLittle Red Riding Hoodを解きます。



狼がいない問題の場合
盤面にピースを敷き詰めて、
赤ずきんが家に到達する道を作ればクリアです。

狼がいる問題の場合
盤面にピースを敷き詰めて、
赤ずきんと狼が、別々のドアで家に到達する道を作ればクリアです。

敷き詰め可能な、1*2の道のピース(両面不可で回転可)は
下記の5ピースです。 (1*2の幅と高さを3倍して、3*6で表現)

ピース白 ピース紫 ピース黄 ピース水 ピース桃
□□□  □道□  □□□  □道□  □□□
□□□  □道□  □道道  □道□  道道□
□□□  □道□  □道□  □道□  □道□
□□□  □道□  □道□  □道□  □道□
道道□  □道道  □道道  □道□  □道道
□道□  □□□  □□□  □道□  □□□

Q01
木赤□家
□□□□
□□□木
□□□木

Q02 (Expertの13問目)
□木□□
木家木□
□□□□
□赤□□

Q03 (Expertの14問目)
□□家□
□□木□
木□□□
木□□赤

Q04 (Expertの15問目)
木家木□
□□□赤
□□□□
□□□□

Q05
□□□□
□□□□
赤□木□
□□□家

Q06
□□家木
狼□□木
□□□□
□□□赤

Q07
赤□□家
□□木□
□木□□
木□□狼

Q08
木木狼□
木家□□
□□□□
赤□□□

Q09
□狼木□
□□家□
□□木□
□□木赤

Q10 (Juniorの07問目)
赤□□□
□木狼□
□□□家
□木木□

Q11 (Juniorの08問目)
家□□□
□木赤□
□狼木□
□□□□

Q12 (Juniorの12問目)
□木□□
赤□□□
□□家□
狼□木木

Q13 (Expertの17問目)
□赤木□
□□□□
狼□木家
□□□□

Q14
木□□木
家□□□
□狼□□
□赤□木

Q15
家□狼木
□□□□
□□□□
木□赤□


ソース

3*3のマスを敷き詰めればOK
家の3つの入口からDFSすれば良さそう
4*4*9なので効率のいいDFSにする必要あり

5つのピースの入口と出口をベクトルで持っておくかも???


実行結果



解説