今日も宿直プログラミングで!
まずCametanさんに教えていただいた書き方に変更。おおっ!表示の()ってどうやって消すんだ?と思ってたんですけどdisplayをmapしたら良かったのか!めちゃくちゃスッキリした。あと買い物するときには手持ちアイテムが見れた方が良いので常に表示するようにして0選択は買い物終了に変更しました。
Equip更新関数もCametanさん版に変更。比べると見易さが段違いだ〜
これから構造体の更新を書いていくんだけど・・alist-consみたいに全部書かなくても更新した部分のみ指定することで新しい構造体を返せる関数とか無いのか・・と思って検索。無いか〜(多分)。今度作ってみるか・・(と、今書きながら思いついた)
かなり混乱したけど新しいmaster-envを採用した方式で買い物関数完成。ここで一段落ついたので終わっても良いけど・・バトル関数行っちゃうか!
まずメッセージを追加しまして・・・
次にバトルREAD関数だけど・・ちょっと悩む。敵はページごとに複数いるのでenemy構造体のリストとして存在するんだけど、そのリストから敵単体を抽出したりリストが空だったら戦闘を終了するという処理をどこでやるのかという事です。うーん・・なんとなくだけどバトルREAD関数でやった方が良いという気がしたのでそっち方向で
戦闘時の攻撃力acは武器を持っていると増えるので、そこんところを実装する。修正値はこんな感じ
修正のために特定のアイテムを持っているかを調べる述語を作りまして・・
敵が人間属性で無かったら選択の余地は無いのでオートバトル関数へ。人間だったら攻撃方法を「通常攻撃」「光弾」に分けるためにChoiceスロットに数値を入れてbattle-evalへ
通常攻撃を選んだ場合の処理を書く。武器の修正は強いモノからCondしていけばエエやろ。しかしコレ、match-let教えてもらってなかったらと思ったらゾッとするでぇ・・。ちなみにテストは完成後にやるつもりでチェックしてません!テスト駆動形開発どこいった・・(^_^;)
という訳で今日はここまで。次回でバトル関連にケリつけられたら!と思うとります