スクラッチ scratch

スクラッチでセーブする方法を考えてみる〜基本的な考え方〜

子供向け無料プログラミング寺子屋『CoderDojo熊本』にて参加されたニンジャからご質問をいただきました。

ニンジャ
ゲームの中でセーブするのと復活の呪文がわかりません。教えて下さい。
アオキ
せ、セーブですか・・考えた事なかった・・

確かに、RPGなり恋愛ゲームなり、少し長めのゲームを作ったとしたら、

毎回毎回最初からスタートだとしんどいですもんね。

アオキ
またレベル1からスタート?!

なんてことになっちゃいますからね。

うまくセーブする方法がないか、調べてみました。

Sponsored link

スクラッチでセーブする方法・・基本編

「スクラッチ セーブ」

などのキーワードでいくつかググってみて、

なかなか分かりやすいものがなかったのでつくってみました。

ざっくり解説すると、

セーブデータ用の変数の箱をつくっておいて、

ゲームの進み具合によって、変数の値を変えていくとOKです。

例えばシューティングゲームで、

  • 最初からの場合は 変数000
  • 1面クリアしたら 変数100
  • 2面クリアしたら 変数200

などとルールをつくっておいて、

改めてゲームを再開した時に、

パスワード姉さん
続きから実行するならパスワードは?

的なメッセージを出させて、

  • 100なら1面クリアした状態
  • 200なら2面クリアした状態

などのように設定すれば実現できるかなと思います。

もし、もっと細かい情報を保存させようとしたら、

例えば、RPGでいうと、

  • レベル
  • 賢さ

みたいなパラメータがあったとしたら、

それらを保存する用の変数をつくるとOKです。

例えば4桁の数字をつくって、最初の値を0000などにしておいて、

  • レベルが2なら千の位を2に設定
  • 力が5なら百の位を5に設定
  • 賢さが8なら十の位を8に設定
  • 運が6なら一の位を6に設定

というルールを決めておいて、

パスワードとして 『2586』 と入力したら、パラメータをその状態に変更すればOKになります。

こちらのスクラッチのコードが参考になります。

こんな感じで桁ごとに意味を変えていけばOKですね。

Sponsored link

スクラッチでセーブする方法・応用編

さきほどの作り方でセーブ・ロードはできるのですが、

欠点としては、パスワードが推測されやすいという事かなと思います。

例えば先ほどのRPGの例だと、9999 と入力したら4つのパラメータとも9になってしまいます。

それではNGとなれば、

もっと推測されづらいパスワードを作る必要がでてきます。

例えば下記のスクラッチのコードでは、
リストをつくった後にそれぞれの数字を16進数に変えたりしています。

16進数は、0〜9と、A〜F まで使って表現する方法で、
例えば先ほどの『2586』だと、16進数だと『A1A』になったりします。

それでも勘のいい人ならパスワードが推測できるとも思います。

実際のゲームでは、

ゲームの進み具合によって変数やリストを変更しつつ、

独自の変換技術を使ってパスワードが推測できないようにしていたりします。

この辺りはどんどんややこしい話になっていくのでここまでにしますが、

セーブ機能1つつくるだけでも、結構いろんな事を考える必要がでてくるなぁと改めて思わされました。

最後に

ニンジャ
スクラッチでセーブしたい

という質問が出てきてくれたおかげで、

僕もその方法を調べることになり、知ることができました。

こうやってどんどん教えあいができてくるとどんどんつくるのが面白くなるでしょうし、

結果的に頭の体操にもなるんだろうなぁと思います。

子供向け無料プログラミング寺子屋『CoderDojo熊本』を始めてよかったなぁと思った瞬間でした。

created by Rinker
¥2,376 (2019/04/20 17:57:28時点 Amazon調べ-詳細)

『スクラッチ』ではこんな記事も読まれています。

1. 【スクラッチ】ジャンプをする方法〜3ステップでジャンプできるようになる〜

2. スクラッチでセーブする方法を考えてみる〜基本的な考え方〜

3. スクラッチプログラミングでマリオ風の横スクロールアクションゲームを参考にいいとこ取りしてみる

4. スクラッチ(scratch)とマインクラフト(minecraft)を連携させて子ども向けプログラミングのネタを増やしてみた

5. 【スクラッチ】時間が経つと敵が増えて難しくしたい、というリクエストを叶えるために

6. プログラミングと三角関数〜小学生でもすんなりわかる三角関数を目指して

Sponsored link

関連記事

  1. クリエイティブコーディング

    プログラミングと三角関数〜小学生でもすんなりわかる三角関数を目指して

    前回の記事で、プログラミングを使って数学がわかるという『コー…

  2. スクラッチ scratch

    【スクラッチ】ジャンプをする方法〜3ステップでジャンプできるようになる〜

    子ども向け無料プログラミング寺子屋『CoderDojo熊本』開催中…

  3. CoderDojo

    【とにかくオススメ】子どものプログラム練習にマインクラフトがオススメな4つの理由

    子ども向け無料プログラミング道場『CoderDojo熊本』を立ち上げて…

  4. スクラッチ scratch

    micro:bit(マイクロビット)とスクラッチをつなげてHelloとやってみた

    ここ数年、子供向けプログラミング教材の種類が世界的に増えてきています。…

Sponsored link

最近の記事

アーカイブ

Sponsored link
  1. 検索システム

    【検索システム】をつくってみた【実際にログインしてさわれます】
  2. MySQL

    検索システムのデータベースの作り方や考え方を8ステップで書き連ねてみる
  3. 検索システム

    バリアフリーなホテル のページをオープンしました。
  4. クリエイティブコーディング

    プログラミングと三角関数〜小学生でもすんなりわかる三角関数を目指して
  5. Laravel

    【Laravel(PHP)】でできる事をわかりやすく(ざっくりと)まとめてみた【…
PAGE TOP