#019 リストの基本的な使い方

ok-scratch

スクラッチに挑戦している皆さん、どうも!スクラッチコーチです。

ネコに何回振るか聞かれたら数字を入力するだけ!スクラッチの乱数ブロックとリストを組み合わせて、サイコロの結果をどんどん蓄積できるプログラムの作り方をわかりやすく解説するよ。

さぁ、スクラッチでナニ作る!?

動画で見てみよう

ok-scratch ok-scratch
チャンネル登録して応援よろしく!チャンネル登録する

チュートリアルの元になった作品

はじめてのスクラッチ #019

はじめてのスクラッチ #019

by ok-scratch
プレイしておこう プレイしておこう
今回のスクラッチを作る参考作品です。「何回振る?」って聞かれて数字を入れたら、サイコロの目がリストにリアルタイムで積み上がっていく。「答え」ブロックをそのまま繰り返し回数に突っ込むだけで、ユーザーが好きな回数だけサイコロを振れる仕組みになるのがキレッキレ。乱数ブロックとリストの追加を繰り返しで回す、このシンプルな組み合わせがイカす。どうやって作るか、見ていこう。参考資料:スクラッチプログラミング事例大全集

今回の目標

ユーザーが入力した回数だけ1〜10の乱数を生成し、結果を「サイコロの記録」リストに保存・表示するプログラムを作る。

スターター作品をリミックスしよう

このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード

#1リストの準備

ok-scratch ok-scratch
ここまでいろんな仕組みを作ってきたけど、今回は「リスト」を使ってデータをまとめて管理するサイコロシミュレーターを作るよ。まずはリストの初期化からスタートしよう。

準備

スプライト「サイコロマスター」を開く

サイコロマスターサイコロマスター
スプライトについて
サイコロを指定した回数振り、結果をリストに記録するスプライト
どんな役割か
サイコロを何回振るかをユーザーに聞いて、その回数だけランダムな数字(1〜10)をリストに追加するよ。シンプルなサイコロシミュレーターを作る感じだね。

実装

step-0

旗が押されたら、リストリスト ( ) を表示するで「サイコロの記録」リストをステージに表示して、リスト( )のすべてを削除するで中身を全部消すんだ。毎回まっさらな状態で始められるようにする準備だね。

ok-scratch ok-scratch
スクラッチのリストって、現実のメモ帳みたいなもの。買い物リストに品物をどんどん書き足すのと同じ感覚で、データを1つずつ追加できるんだ。しかもリストは画面に表示されるから、中身がリアルタイムで増えていく様子が目に見える。今回みたいに大量のサイコロ結果を記録するには、変数じゃなくてリストを使うのが正解なんだ。

確認プレビューしておこう 確認プレビューしておこう
旗を押すと「サイコロの記録」リストが表示されて、中身が全部リセットされたね。

#2乱数の生成

ok-scratch ok-scratch
リストの準備ができたから、次はサイコロを振る仕組みを作っていくよ。ユーザーに回数を聞いて、その分だけランダムな数をリストに貯めていく。
step-1

調べる( ) と聞いて待つで「サイコロを何回振る?」と質問すると、画面に入力欄が出てくるんだ。ユーザーが数字を入力するとその値は「答え」に入るから、制御( ) 回繰り返すの回数にそのまま渡すのがミソだよ。

繰り返しの中では演算( ) から ( ) までの乱数で1〜10の乱数を生成して、「サイコロの記録」リストにどんどん追加していく。「答え」をそのまま繰り返し回数に使うのがコツで、もしこの仕組みがなかったら毎回固定の回数しか振れなくなるから、ユーザーが好きな回数だけサイコロを振れる仕組みになっているんだ。

ok-scratch ok-scratch
コンピューターが出す「乱数」って、実は完全にランダムじゃないんだよ。数学的な計算で「ランダムっぽく見える数列」を生成してるから、正式には「疑似乱数」って呼ばれてる。でも天気予報やゲームのドロップ率の計算には十分使えるし、スクラッチで何万回も振ればちゃんと均等にバラけるのが確認できるよ。

確認プレビューしておこう 確認プレビューしておこう
回数を入力すると、その回数だけ1〜10の乱数が「サイコロの記録」に追加されたね。

まとめ

リストって変数と違って、複数のデータをまとめて管理できるから便利だよ。今回みたいに「答え」をそのまま繰り返し回数に使うテクニックは、クイズやゲームでも大活躍する。乱数とリストの組み合わせをマスターしたら、次はスコアランキングや問題シャッフルにも挑戦してみよう!

ブクマよろしくお願いします! ブクマよろしくお願いします!
どんどん追記・更新していくので、ブックマークやシェアよろしくお願いします!