トップページに戻る
次の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つのピースの入口と出口をベクトルで持っておくかも???
実行結果
解説