星田オステオパシー

Racketで何かゲームらしきものをつくれ!009 戦闘関係ほぼ完成&モジュール化関連

今日も宿直プログラミング、いや〜ホント久しぶりの感覚ですよ
「あ〜早く朝が来ないかな」
とか考えながらベッドで寝転がってるのは


 まずモジュール化を試してみよう!ってんで環境に依存してない関数を選びまして・・。うーむ・・紹介されているprovide requireは1関数につき1モジュールファイルが必要ってことですよね・・
 生来のメンドクサがりなんで、SRFI的にファイルに複数の関数を入れておいて一発でまるごと使えるようにしたいなぁ・・とw。ドキュメントを検索すると、なんとなく(all-defined-out)がそれっぽい気がするんだけど・・駄目でした。英語力ホント大事だな〜


 Cametanさんに提示してもらった論理演算での真偽チェックと比較。なるほど〜結果として真偽が出力されるならそれを利用せいと。これは今後身につくまで常に意識する必要あるなぁ


 という訳で続き。今回は人間相手の戦闘で光弾を使う場合からでした。まあザックリとメッセージ部分を追加して・・


 バトルREAD部分。モンスター全滅判定はバトルLOOPでやるべきでは?と思ったんだけど作ってみるとLOOP部分で(cdr enemies)にするし、null?って無い場合には敵登場アナウンスもあるのでこっちで・・


 これはREADに統合するべきなんだろうけど、動くのをチェックしてからにしよう・・と後回しに(ネタバレ:battle-eval-autoは廃止します)。


 ここまでが光弾無し部分


 で、今回新規の光弾部分。使うと優勢判定無しで相手に3ダメージなのでこんな感じで。もしも弾切れだった場合にはペナルティとして無条件で−3と言うことで(オリジナルルール)


 で、非人間タイプの場合のbattle-eval-autoも(コピペで)作ったんだけど・・意味ねぇな、と。モンスター相手の時に戦闘の作法が変わるのも変なので、統合しよう


 で、PRINT部分。これは別に変わってないか・・


 でLOOPと。死亡判定して敵グループをcdrしてREADに返す。さて、動くかなぁ〜


 動いた!ちゃんと敵グループが全滅するところまでオッケイ。けどなんか変だ・・「どうする?」関係でステータス表示にPphpを使う必要が無くなってしまったようだ。あと光弾を投げつけるメッセージは前のターンで実質の攻撃メッセージが次のターンとかになってるし


 あと、行空けが無いので単純に見づらい


 モンスター版もチェック。選択の自由が無いのに選択肢を出すのもどうか?って感じだけどUIが統一されてない方が嫌かな、と。これによりEval-autoは廃止となりました



 ステータス表示をINPUT部分に移動させてステータス表示問題はクリア


 ダメージ軽減効果のある防具「額あて」の事を忘れてたので実装。こう書いたら行けそうかな?と言うのが行けてしまうのがCametanさんおっしゃってたところの人間の思考に寄り添った書き方が出来るって実感出来るところっすねぇ。
 表示を見るとちゃんと効果を発揮してるのが分かる(11-7 なのに残りが5
)けど・・表示は工夫しないといけないな


 ステータス表示を変更。せっかく武器を持っててもありがたみが分からないので増加分を表示するようにした。



 ダメージ減少部分も同じような感じでありがたみを分からせるようにしてみるか・・と改造。戦闘についてはこんなもんかな(^o^)


 戦闘部分ほぼ終わって24時を過ぎてるし今日はココまで。次回はアイテム使用部分を書いて・・それでサブシステム部分は終わりじゃないかな?そしたら次はページデータを作ってマスターシステム部分ということで!

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

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

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