星田オステオパシー

Racketで何かゲームらしきものをつくれ!017 さらに各種イベント関数を作る

おっ?今日は更新が遅いな?ちゃんと理由がございます

とりあえず清掃が終わって早速続きを作っていきます
 まず、前回途中までだった真サイコロ関数。もっと色々と機能をつけないといけないか?と思っていたけど、argは0かWかその他の数字って組み合わせしかありませんでした。

 サイコロこんな感じ


 次にアイテムドロップ関数。「キミは〜を失った!」というメッセージをつける予定。

 実験として初期装備で15個持っているチコの実をドロップ

 グラフィックがダブって表示されてるので直すとして、チコの実はちゃんと4個減って11個になってますな


 数字入力を求める部分。行き先リストと照合して適合すれば無事にジャンプ、間違った場合はpages-argに設定されてるページに強制的に飛ばされるようになってます

 こうなって

 間違うと飛ばされる


 たった一箇所しか無いEacapeのために作りましたw 逃げるかどうか選択肢を出してクローンページなどに飛ばす


 こんな感じでクローンページに飛ばす。逃げた場合はargの1つ目、いいえは2つ目って感じで

 こんな感じで選択肢。1 か 2 以外の場合にはもちろん再入力で

 2を選ぶと戦闘開始。まあ、たった一箇所しかないんですけどね!

 さて・・

 ここまでが昨夜の23時くらいまでかな?結構良いペースで進んでいて、一気に最後までやるぅ!?とか思ってたんですが・・

 次のアイテムゲット関数であるイベントGで大苦戦・・・どんどん頭が疲れていくのに悔しくてやめられなくて結局3時まで粘ってしまう。しかも未解決!うわ〜健康に悪い。スッキリして眠りたかった・・

 そんな複雑な話じゃないのになんで!?と言う気持ちが強かったので、宿直終了後、ついでに清掃のバイトをして帰宅し飯食って早速再開

 pages-argで連想リストのリストを受け取って、その内容をmaster-equipに統合するだけなのに!昨夜はこの形になったところで終了。ぐぬ!新たに手に入れたアイテムだけがリストに残されてもともとのアイテムが消え去ってしまってる・・

 飯を食べて昼間に見直してみると・・あ、もともとのequipを足すのを忘れてるw ということでappendしてみる。言うまでもないが最初はconsして失敗したw 結果、やった!と思ったけどおかしいぞ?あ、そのまま足したらダブるわな・・

 と言うかそもそも食わせるリストが逆じゃないか?Equipを食べさせてArgに同じのがあったら足してalist-deleteを被せた再帰にalist-consすれば・・!出来た〜。if (assocの結果をmatch-letで捕えるのが良いんだろうけど、とりあえず動くもの作ってから美容整形しようと(^_^;) 前にassocの返り値がなんで#tじゃないんだ!と言ってましたけど#f以外は全部#tってのがようやくちゃんと理解できました。
 あとは・・alist-deleteって再帰構造にまるごと被せるだけでちゃんと動いてくれてちょっと感動!って感じですかね?

 これでやっとこさ心安らかに過ごせる!

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

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

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