星田オステオパシー

Racketで何かゲームらしきものをつくれ!026 微調整と振り返りとプレイ動画

 いよいよ総まとめか〜・・とか思ってたんですけど、OPとイニシャライズ部分を作るのを忘れてましたわ
 という訳でStart関数。画像ファイル名をリスト化出来ない以上、こうなるかな・・

 あと、サイコロ関数が変だったので修正。当初サイコロの結果の行き先をC-listから選ぶようにしてたせいで仕様変更後のと混ざっておかしくなっていた。



 はい、冒険のスタートです


 そしてこれが実際の冒険の動画です。GIFファイルなので動きが悪いのですが実際に見てると結構いい感じなんですよね!暇すぎて死にそうな人はどうぞ(^o^)
 適当にやってたのにまさかの展開で・・・?(GIF画像はPCじゃないと見れないかも?)


 ではここからこのシリーズの振り返りなぞを・・
 Cametanさん提供のツール達。直接使わせていただいたのももちろんですけど参考にさせていただいて助かりました。そう言えばCase-lambdaを自分では全然使うという発想が湧かないので、次回は意識して使うようにしよう

 今回リスト操作でCompose notには非常にお世話になりましたわ〜。「〜ではない」ってのは強力な考え方なんですね。Flush-outputは、まさかこんなドンピシャに都合が良い機能が備わってるとは

 アイテム系データ。やっぱり構造デザインの話になると思うんですけど、属性とかは最初からもっときっちり作っておくべきでしたかね。アイテムの構造リストと手持ちのデータの連携はデータベースっぽくて興奮しました。構造に販売されているページ数をデータで持たせるのはモンスターも同じ作りだけど良い仕組みだったように思えるなぁ

 続いてページ構造体。画像挿入の方法はこの書き方教えていただいて助かったなぁ・・D&Dでの挿入だったら絶ッッッ対に挫折してました。
 ページの構造体デザインはPage構造体のイベント種スロットとMaster構造体のEventスロットOnOffを組み合わせて発動させるってのはすごく良かったと思う。

 Lispだからって事でも無いんだろうけど、とにかくもうリストの操作をしまくりだったのでFilter Map Lambdaにもさすがにちょっとは慣れたなぁ・・

 これは改善ポイントだけど・・対象アイテムが少ないとは言え、これはちょっとひどい仕組みな気がするなぁ。装備コマンドが無い場合は買った時点で新たにステータスを再計算して・・てすべきかな。

 ここもそうですよね・・。+表示させるというのであれば、直接ACだけ操作するんじゃなくて、やっぱりENVに武器装備スロットを用意するべきか・・そっちの方が関数型っぽいし。
 戦闘中に使えるのも今回は光弾丸だけだったから良かったけど汎用性持たせようと思ったら戦闘時使用可能+回復系(or攻撃系)で属性を持たせておけばFilter出来るな?

 こちらは色々と詰まってて応用が効くので定期的に見返そう


 main-read関数。いくつかまとめられそうだけど、こんだけIfが連発してるとちょっと見た目が・・。例えばIfでこうやってつなぐのと連想リストで持たせておいて場合分けに使う・・とかだったらどっちの方が良いのか?とか

 色々と悩んだステータス変更関数だったけどステータスの種類が増えたらということを考えるとENVにもっとたくさんのスロットを用意することになるわけで、果たして効率的にはどうなのか?とか

 基本的に同じ内容をする?しない?で選択できる場合とそうでない場合がある・・ということであればYESNO関数的なのをかましてまとめられそうな気がするかな・・

 では次回作はこれらを少しでも踏まえて、少しでもスマートな構造になるように考えいくとしよう。

 とりあえず構想としてはゲームブック「ラピュタ」だけど、今度はGUI版にする予定なのでテストとしてナウシカをちょっとだけGUIにすることで必要な構造を探るというのから始めるかな?

 お疲れ様でした〜(^o^)





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

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

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