食後のひとときなどを利用してチョコチョコと書いていく(良い傾向じゃないかな?)。テストが進まないのでイベント起動のメインとなる関数を書く。
目的はイベント発生条件の確認。
・スロットTrackには既に通って来たページがリストになってるので、そこにMemberした場合はイベントが発生しない
・Eventが#fの場合は発生しない
・参照したPages構造体のFlagに対応したイベントが発生する
オッケイ(^o^) ナウシカの時は全部(If (andでやってたんだからなぁw
続いてステータスチェック関数
そのまま書いたんですけど。うーん・・これはちょっと見苦しいかなぁ・・
ナウシカでも書いたんだけど別の書き方でやるか・・とCaseを使ったが・・あ、Elseの方法が分からない
と、思ったらElse使えるんかーい!Case便利だなぁ
続いて任意の数字入力関数。カギなどの番号を入力するために行き先のリスト内容は伏せられている・・あっ!これ、ページはArgにしないと再訪した時に全部丸見えになってしまうな・・とコレ書いてて気づきました(^_^;)
今回やたらとバリエーションのある確率関係。以前は事前に計算して確率のみを調べる!とか思ってたんですけど、出目も表示したいし実際にサイコロを振る方式にするか・・と。まずはサイコロ関数。サイコロの数を引数にして・・と
5パターンくらいあったので、全部作る。その中で、サイコロを2つ振って特定の数(3,11)とゾロ目の場合#tというものがあって作ってたんですが・・あっ!これは・・生まれて初めてLet*を使うチャンスがw
いや〜使ってみるとありがたみが分かりますね。ちょっと心細かったのでテストw
アイテムゲット関数。ナウシカの時はLet Loopを使ってチェックをしていたので、今回はMapを使う練習をしてみる。alist-consの引数とか完全に忘れてたり、EquipもLamdaでMapかけてしまって無茶苦茶増えたりして苦戦したけど出来た!
ん?リストの()が多くないかな?
元の*equip*と比べるとやっぱり()が多かった。うーん・・・Carしとくか!ということで揃いましたとさ。mapかけたからかな?
という訳でページデータは全部出来たので、後はイベント関数をこの調子で書いていってテストして画像入れて・・って感じかな。
ナウシカみたいに途中で道具を使ったり買い物したりというのが無いので非常にシンプルな造りになってるな〜。その代わりにサイコロ判定のバリエーションが妙に豊かって感じ。
あと使ってなくて気になってる文法?はハッシュとかかなぁ・・まあ、それはDD&Dで考えよう。