Subject: LAST-REPORT 滝沢です。 最後の課題を完成しました。 (プログラム /home/c71210/sysriron/last.rep) <地雷GAME> 7 * 7のフィールド上に埋まっている地雷を避けながら進む。 フィールドはリストでできていて、下のような状態になって いる。 ((1 1 1 1 1 1 1 1 1)<-- 外にでれないよう地雷が壁になっている。 (1 0 0 0 0 1 0 0 1) (1 0 0 1 1 0 0 1 1) (1 1 0 0 0 0 0 0 1) <- 地雷が 10個埋まっている状態 (1 0 0 0 0 0 0 1 1) '1' -> ”地雷あり” (1 1 0 0 0 0 0 0 1) '0' -> ”なし” (1 0 1 0 0 0 1 0 1) (都合上ゲームの中では (1 0 0 0 0 1 0 0 1) 左が上、右が下、 (1 1 1 1 1 1 1 1 1)) 上が左、下が右) プレーヤーは( 1, 1)からスタートし、ゴールの( 7, 7)を目指す。 ↑ ↑ リストの左上 リストの右下 <遊び方> > (jirai-game 10) <- 迷路に地雷を 10個 ((1 . 1) 2 "YOU ALIVE.") <- (('座標') '周りの地雷の数(0 〜 4)' "状態") > (mov 'r player meiro) <- 'player'を'meiro'上で 'r ('right')に移動 ((2 . 1) 1 "YOU ALIVE.") <- 右に移動 : : ((4 . 6) 2 "YOU ALIVE.") > (mov 'l player meiro) <- 地雷のある所に移動すると ((4 . 6) 2 "YOU DEAD!!") <- 死ぬ(まだ移動はできる) : <- うまくいくと > (mov 'd player meiro) <- 下に移動 ((7 . 7) 2 "GOAL!!") <- ゴール <頑張ったところ> 地雷はランダムに置かれるが、その数が多いと スタートからゴールまでの道をふさいでたどり 着くことが不可能になってしまう。そこで、私 が一番苦労したところが[迷路の判定]である。 次を見て欲しい、 > (jirai-game 10) <- 地雷を 10個 > meiro <- フィールドを見る ((1 1 1 1 1 1 1 1 1) (ゲームをやる時はみないでね) (1 0 0 0 0 1 0 0 1) (1 0 0 1 1 0 0 1 1) (1 1 0 0 0 0 0 0 1) (1 0 0 0 0 0 0 1 1) <- ゴールにたどり着ける (1 1 0 0 0 0 0 0 1) (1 0 1 0 0 0 1 0 1) (1 0 0 0 0 1 0 0 1) (1 1 1 1 1 1 1 1 1)) > (jirai-game 10) <- さらに 10個 > meiro ((1 1 1 1 1 1 1 1 1) (1 0 1 0 1 1 0 1 1) (1 0 0 1 1 0 0 1 1) (1 1 0 0 0 1 0 0 1) これも (1 0 1 1 0 1 0 1 1) <- ゴールにたどり着ける (1 1 1 0 0 0 0 0 1) (1 0 1 0 1 0 1 0 1) (1 0 1 0 0 1 0 0 1) (1 1 1 1 1 1 1 1 1)) > (jirai-game 10) <- またまた 10個 > meiro (フィールドが 7 * 7 = 49 なので ((1 1 1 1 1 1 1 1 1) その中で 30個だと迷路の決定に (1 0 1 0 1 1 0 1 1) かなり時間がかかるので注意) (1 0 0 1 1 0 1 1 1) (1 1 0 0 0 1 1 0 1) (1 0 1 1 0 1 1 1 1) <- ほぼゴールまで一本道になる (1 1 1 1 0 0 0 0 1) (1 1 1 0 1 1 1 0 1) (1 1 1 1 1 1 1 0 1) (1 1 1 1 1 1 1 1 1))