では前回の続きからプレイしていこう
前回気になっていたのがサイコロ関連。通常の判定はサイコロの結果だけ表示して選択肢はプレイヤーに任せていたけど・・そういう部分、放置するのはやめようと。サイコロの結果が偶数か奇数かで行き先リストを強制選択して移動するように書き換え
奇数なので・・
有無を言わさず次のパラグラフへ。アイテム使用が出来ないでは無いか?とも思ったけど、そもそもサイコロを振るシチュエーションとは切羽詰まったもののはずなので逆に良い!ような気がしてきた
ここで実際にプレイするのはやめて(もう動くのは分かったので)、パラグラフを1から眺めて番号入力が必要になるためのアイテムだったりを改めて洗い出す。アイテムを手に入れる方法はアイテムゲットProcとステータス変更Procがあるわけだけど、ステータス変更Procは基本点行動点に変更が無いときでも便利だ。これは次に作るときには複数のアイテムも変更できるような汎用的なモノにするべきだなぁ。
オッケイ!
以前「森の人」に出会ったことがあれば・・という条件分け
数字をたどるとP84で出会っているの*equip*に連想リストを追加してステータス変更Procで静かに追加
森の人と会わないで来た時
会ってから来た時。オッケイ!
うーん・・これは・・。このページのためだけに判定Procを作るのは容易いが・・・
もっと汎用性のあるモノに挑戦すべきな気がする。Pages-argのイメージはこういう感じで、判定式自体をパターンとして保存しておいてCondの中に展開するってのが出来たら良いな・・。これ、前にCametanさんに教えてもらった例のアレで行けそうな気がする!が、最早忘れてしまってるので次回までに調べておこうと後回し
そう言えばゲームオーバーの処理を作ってなかった。気分的に後回しで
うーん・・これは悩ましいな。やってやれんことは無い。このページに来るごとにカウンタスロット(余ってるスロットがあるし)に足していって判定するProcを書けば良いんだから。けど、これは面倒なだけでチャレンジでは無いせいか気力が湧かないって感じかなぁ・・
さっきの光弾の数によるのと同じ形で今度はステータスによる自動三択。
イメージとしてはこんな感じで行き先リストと1:1の条件式をCondで展開して自動で振り分けたいわけだ。対象が所持アイテムだけではなくてmaster-ac master-hp でも対応できるようなモノにするには・・これはチャンレジすべき事柄。でも後回しで
あ、マントってココで使うのか・・。
まあ、これはCでアイテムチェックして場合分けしたクローンページを作って飛ばせが良いが・・
問題は油やランプ類を使って気をそらす・・って部分。多分、ランプ、ろうそく、カンテラの3つが対象になるはず・・
うーん、これしかないな。前から考えてはいたんだけどItem構造体に新たなスロットを作る、すなわち属性att。通常画面で使用出来るアイテムの時に考えてたんだけど、結局「回復ポイント」を持ってるもので選べば良いか・・とスルーしていた。改めて設定することに
明かりなので”L"って事で。ただ、このItem-attの中身をチェックして現在持っているアイテムと照合して選択肢として出したり操作したり・・これはチャレンジ(当社比)だ
FilterとかMapとかを多重に使わないといけないか・・くらいしかイメージできないので別タブを開いて最深部から手探りで作っていく。まずは”L"属性を持つアイテムをItem-listから引っ張ってこないといけないハズ・・
そのname部分だけを抜き出してリストにしないといけない気がする・・
それをmapにかましたLambdaでキーにして現在装備しているリスト(ここではとりあえず*equip*で実験、”L"も実際は仮引数att)をAssocして連想リストを取り出し
更にゼロで無いものをFilterで抜き出せば・・出来た!!
いや〜・・やっとこさMapがちょっと分かった気がする。トルクの要る作業(当社比)だったけどやって良かった。ここまで出来れば選択肢でInputしてLetしてalist-consして・・って流れで出来そうかな・・
表示部分を追加して
Procに整形してオッケイ、と。あ、*equip*のママになってる。lstにしないと。
とまあ、ここで深夜2時になってたのでさすがに終了。次回も楽しみだ!