今日も宿直Racket行ってみよう!
まず先日風呂で思いついたある機能の実装に挑む

以前から文字の表示が味気ないと思ってたわけ。一気にバッ!と出るんではなくてドラクエみたいに1文字ずつ 「トゥルトゥトゥト トゥトゥトゥトゥトゥルトゥ」みたいな感じで流れてくれると追いやすいし雰囲気が出るかなと。これを既存のdisplayと入れ替えてみる

お・・思てたんとちゃう!(ネイティブ) これではただの低スペック表示だぁ。結局昨夜はとっとと諦めたんですけど、一夜明けて考えてみると(string->list)の時点で1文字ずつのリストじゃなくて複数文字列のリストになってて、その文字列ごとに出力されてるかも知れないな・・と。後で時間があったら検証してみよう。

まずはトラブル編。どうも冒険の最初に商店街みたいなところで買い物が出来るようなのだが・・・この「本の最終ページに地図がある」って書いてあるけど無いんだコレが。全ページスキャンしてるはずなのに・・
奥付除けば最終ページって

「天使のたまご」のムック本広告だしなぁ・・。まあこっちで捜索するしかないか。アイテムの購入ページで大体分かるんで。

続いてトラブル編2。最大のデータ「page」なんだけど・・実験用にいくつかpages構造体を作ってprovide requireしたところ上の様なエラーが。page-listで呼び出さなくてもrequireしてる時点で出てます(^_^;) 画像の埋め込みと関係があるのだろうが・・

差し当たってデータをメインファイルに書けばこのように読めるので・・実験中はこれで行っとくか

各ページへのアクセスは便利な数字入力→list-refで出来るようにリスト形式で。出来上がったページはカンマをつけて実体にしていく予定

page(後に名前問題が発生してpages)構造体のスロットは考えた末に
(現在ページ イベントの種類 選択元のページ 選択先ページリスト 画像)としました。

これまた先日風呂で思いついたmaster構造体の未使用となって遊んでいたスロットをEventオンオフに置換。

ページに持たせたイベント種類フラグBバトル Sショップ Tステータス変更 Rサイコロ Dアイテムドロップ Lリミットバトル Kクシャナバトル N通常ページとmaster構造体のEventフラグ、これが両方とも真だとイベント発生。イベント後はページ構造体を再生成しなくてもmastar構造体のフラグをオフにするだけで通常の「アイテム使用」か「先のページを選ぶか」に出来る!はずだったのだが・・master-Eventは普通にEventに変更しないといけないのを除いても駄目で、明らかに偽なのにbattle-readが暴発してしまう。
あっ!これも風呂で読んでいたSCIPにあったよ、生徒が調子に乗ってIFを自作のCONDを使った関数にしたら何が起こるか?って話。CONDは記述した時点で評価されてしまうって事なんだな?

という訳でIF版

READで全部まとめようと思ったのだけどIF文の中にCONDを入れたせいか?シンタックスエラーが出てしまい分割。とにかくこうすると動きました。やったぜ!

メイン選択肢はこういう感じ。イベントがなければいつでもアイテムが使えるようにして(回復のみ)、行き先はリストで管理してるのでいつもの方法で選択肢を表示。選択肢も数字で行き先も数字ってのはちょっと・・と思うけど管理が面倒だしなぁ。

時間があったので試してみました。文字列はバラバラのリストにちゃんとなってるみたいなのに「ドカッ!」と表示されるのでそういう調整は出来ないと判断しました。sleep1とかだとちゃんとバラバラに表示できるんですけどねぇ
とりあえず今日もやりたいところまでは出来た。次回も楽しみだ!