まずどんなゲームなのかと言うと・・
TI 99/4 Hunt the Wumpus Walkthrough
You Tubeで見つかったのはこういうかなりグラフィカルなバージョン。テキストバージョンもあったけど全くイメージが掴めなかったので・・
![](https://blogimg.goo.ne.jp/user_image/49/9a/270ac0caab17a20f2126c4227ec1794b.png)
と言ってもまあ、いつも通りの展開でやっていきます。乱数発生の関数か・・こんなので良いのかな。
![](https://blogimg.goo.ne.jp/user_image/2d/73/831ca897bf7929d69459ffcd010255c9.png?1644239206)
Loop repeat・・うーん、一定の回数だけLoopさせるんですね?
![](https://blogimg.goo.ne.jp/user_image/06/dc/90a2170a672652e1e2dcdfec872b38a5.png)
お、Collectも一緒に解説されてる。しかし問題はSchemeかRacketでどう書くか・・
![](https://blogimg.goo.ne.jp/user_image/56/e0/a7a1a895b160dd70aa29224ad386d4d3.png)
内包表記、久々に聞いたな!Lmabdaと再帰を使わなくても繰り返しができるという事か!
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
![](https://blogimg.goo.ne.jp/user_image/0c/f2/82282bcdb9b8851cfdb3a21619123de2.png)
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
SchemeのSRFI42にて同様の機能が提供されているということで解説を読む。これ、むちゃくちゃエエやん!Lispっぽくは無いのかも知れないが・・
![](https://blogimg.goo.ne.jp/user_image/3d/d6/9caa07410428acebfc5a664ec9fe4ff3.png)
繰り返しの表現がむちゃくちゃスッキリ書けるんですねぇ
![](https://blogimg.goo.ne.jp/user_image/3f/f6/538352ec66878fb1bf95d6fe14c4cc9c.png)
どうやらマップを自動生成するための関数っぽいですね。Unlessを使った条件分岐だけどSchemeでやると例のNullと#f問題があるので、こういう書換えになるんですね。
![](https://blogimg.goo.ne.jp/user_image/1e/77/0624c9f2a9c3b6144ac02e663cbbd97f.png)
で、Remove-if-notだけど・・Filterを使うとして「イコールでは無い」という書き方。(!= (car x) node))だとエラーだったんだけど・・notを使うといけるんだろうか?これでも一応エラーは出なかったけどちゃんと動いてるかは不明。
後で (not (eq? (car x) node)) じゃないと駄目じゃないか?とか。そっちでもエラーが出なかったんだよな・・ちょっとバイトで時間が無かったので検証は次回で。
とりあえず、まあ続けますって事で!