- スターター作品
- なし
- 今回の完成サンプル
- なし
さぁ、スクラッチでナニ作る!?
動画で見てみよう
[talk]チャンネル登録して応援よろしく!チャンネル登録する[/talk]チュートリアルの元になった作品
[prj-embed prj="1316444008" mini="1" title="プレイしておこう" prj-title="はじめてのスクラッチ #019" prj-author="ok-scratch"]今回の[prj-link prj="1316444008" title="はじめてのスクラッチ #019" author="ok-scratch"]スクラッチを作る参考作品[/prj-link]です。「何回振る?」って聞かれて数字を入れたら、サイコロの目がリストにリアルタイムで積み上がっていく。「答え」ブロックをそのまま繰り返し回数に突っ込むだけで、ユーザーが好きな回数だけサイコロを振れる仕組みになるのがキレッキレ。乱数ブロックとリストの追加を繰り返しで回す、このシンプルな組み合わせがイカす。どうやって作るか、見ていこう。参考資料:スクラッチプログラミング事例大全集[/prj-embed]今回の目標
スターター作品をリミックスしよう
このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード
#1リストの準備
[talk class="m-l-n"]ここまでいろんな仕組みを作ってきたけど、今回は「リスト」を使ってデータをまとめて管理するサイコロシミュレーターを作るよ。まずはリストの初期化からスタートしよう。[/talk]準備
スプライト「サイコロマスター」を開く
| スプライトについて |
|---|
| サイコロを指定した回数振り、結果をリストに記録するスプライト |
| どんな役割か |
| サイコロを何回振るかをユーザーに聞いて、その回数だけランダムな数字(1〜10)をリストに追加するよ。シンプルなサイコロシミュレーターを作る感じだね。 |
実装
旗が押されたら、リスト ( ) を表示するで「サイコロの記録」リストをステージに表示して、( )のすべてを削除するで中身を全部消すんだ。毎回まっさらな状態で始められるようにする準備だね。[talk]スクラッチのリストって、現実のメモ帳みたいなもの。買い物リストに品物をどんどん書き足すのと同じ感覚で、データを1つずつ追加できるんだ。しかもリストは画面に表示されるから、中身がリアルタイムで増えていく様子が目に見える。今回みたいに大量のサイコロ結果を記録するには、変数じゃなくてリストを使うのが正解なんだ。[/talk]
#2乱数の生成
[talk class="m-l-n"]リストの準備ができたから、次はサイコロを振る仕組みを作っていくよ。ユーザーに回数を聞いて、その分だけランダムな数をリストに貯めていく。[/talk]( ) と聞いて待つで「サイコロを何回振る?」と質問すると、画面に入力欄が出てくるんだ。ユーザーが数字を入力するとその値は「答え」に入るから、( ) 回繰り返すの回数にそのまま渡すのがミソだよ。
繰り返しの中では( ) から ( ) までの乱数で1〜10の乱数を生成して、「サイコロの記録」リストにどんどん追加していく。「答え」をそのまま繰り返し回数に使うのがコツで、もしこの仕組みがなかったら毎回固定の回数しか振れなくなるから、ユーザーが好きな回数だけサイコロを振れる仕組みになっているんだ。[talk]コンピューターが出す「乱数」って、実は完全にランダムじゃないんだよ。数学的な計算で「ランダムっぽく見える数列」を生成してるから、正式には「疑似乱数」って呼ばれてる。でも天気予報やゲームのドロップ率の計算には十分使えるし、スクラッチで何万回も振ればちゃんと均等にバラけるのが確認できるよ。[/talk]
まとめ
リストって変数と違って、複数のデータをまとめて管理できるから便利だよ。今回みたいに「答え」をそのまま繰り返し回数に使うテクニックは、クイズやゲームでも大活躍する。乱数とリストの組み合わせをマスターしたら、次はスコアランキングや問題シャッフルにも挑戦してみよう!