星田オステオパシー

Racketで何か・・022 Hunt the wumpus

まずどんなゲームなのかと言うと・・
TI 99/4 Hunt the Wumpus Walkthrough
 You Tubeで見つかったのはこういうかなりグラフィカルなバージョン。テキストバージョンもあったけど全くイメージが掴めなかったので・・


 と言ってもまあ、いつも通りの展開でやっていきます。乱数発生の関数か・・こんなので良いのかな。


 Loop repeat・・うーん、一定の回数だけLoopさせるんですね?

 お、Collectも一緒に解説されてる。しかし問題はSchemeかRacketでどう書くか・・


 内包表記、久々に聞いたな!Lmabdaと再帰を使わなくても繰り返しができるという事か!

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
 SchemeのSRFI42にて同様の機能が提供されているということで解説を読む。これ、むちゃくちゃエエやん!Lispっぽくは無いのかも知れないが・・


 繰り返しの表現がむちゃくちゃスッキリ書けるんですねぇ

 どうやらマップを自動生成するための関数っぽいですね。Unlessを使った条件分岐だけどSchemeでやると例のNullと#f問題があるので、こういう書換えになるんですね。

 で、Remove-if-notだけど・・Filterを使うとして「イコールでは無い」という書き方。(!= (car x) node))だとエラーだったんだけど・・notを使うといけるんだろうか?これでも一応エラーは出なかったけどちゃんと動いてるかは不明。
 後で (not (eq? (car x) node)) じゃないと駄目じゃないか?とか。そっちでもエラーが出なかったんだよな・・ちょっとバイトで時間が無かったので検証は次回で。

 とりあえず、まあ続けますって事で!




  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「プログラミング」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事