CoderDojoでニンジャに相談されて作った、ゲームデータのセーブとロードの処理を再現してみました。いわゆる「ふっかつのじゅもん」方式で、難しい言葉でいうと"Serialize"と"Deserialize"です。 これをScratchでどう作ったらいいのだろう?と考えた末にできたものがこれです。もしかすると、Scratchでこのような処理を作るためのベストプラクティスがあるかもしれませんので、こんなやり方があるよという方がいらっしゃったらコメントかリミックスでご教示ください。 使い方は以下の通りです。1.緑の旗をクリックします。 2.キャラクターの情報がランダムに決定します。 3.aキーを押すとセーブする情報が「セーブデータ」に追加されます。 4.これをコピーしてください。 5.もう一度緑の旗をクリックして、キャラクターの情報を変更します。 6.bキーを押すとセーブした情報を入力するように言われますので、先ほどコピーした文字列を入力してください。 7.最初に緑の旗をクリックした時の状態が再現されます。 保存する対象のデータがリストになっていると、ループで処理できるのでもう少し楽になるとは思いますが、とりあえず変数で情報を保持していることを前提にします。 多くの人に理解してもらえるよう、複雑な符号化は避けました。
このロジックを考える機会を作ってくれた、 @dragon-kさんに感謝します。彼は彼がわかっている範囲のプログラミング(ロジックだけじゃなくて画面作りなども含めて)は圧倒的に早く。そのスピードと自分が作りたいものをなんとしてでも完成させたいという思いには圧倒されました。 まだ改善の余地はあるかもしれませんが、彼のおかげでDojoの時間の中でこの方法を実現できたことに自分自身が嬉しかったです。