完成品の確認
準備をしよう
下のURLをクリックして、アーケードを開いてください。
https://arcade.makecode.com/S57509-05983-17599-91640
出てきた画面の上にある「Edit Code」ボタンを押して、プロジェクトを開いてください。
プログラミングする
初めの設定
スプライトと背景の設定
プレイヤーとして「女の子」を出して、以下の設定をします。
背景は水色にしておきましょう。
クイズリストの作成
配列でクイズリストを作ります。「クイズリスト」という名前の配列を作ります。
その中に、6つのクイズを作ります。クイズの内容は、以下の通り。
- 韓国は島国?
- ブラジルの首都はサンパウロ?
- コーヒーは英語でCOFFEE?
- 日本で一番高い山は富士山?
- 令和元年は、2020年?
- カステラはスペインから入ってきた?
答えリストの作成
次に答えリストを作ります。こちらも配列で「答えリスト」として作ります。
さきほどのクイズリストに対応させて、答えを設定していきます。文字ではなく、真偽値を入れます。「論理」カテゴリーの一番下にあるブロックを使って、以下のように設定します。
- 偽
- 偽
- 真
- 真
- 偽
- 偽
変数を初期化
「スコア」、「問題数」、「回」を作って、初期化しておきます。
「スコア」は「情報」カテゴリにありますが、あとの2つは新しく変数として作ります。
5つのクイズなので「問題数」は、「5」に設定します。
以下のように入れて下さい。
オープニングテロップを出す
ゲームスタート時のテロップを出します。
「5問出すよ」の「5」はメンテナンスしやすいように、さきほどの変数「問題数」を使って、文字列連結をします。
メイン処理
クイズを5回出すので、5回繰り返すようにします。
変数「回」はもともと「0」で、繰り返しに入るたびに +1 されていくようにします。これを「〇問目」のところで使うことで、繰り返すたびにちょうどテロップの数も上がっていきます。
下のように入れて下さい。
クイズを無作為に選ぶ
まずは、以下のようにプログラムを追加してください。
「配列の長さ(クイズリスト)」では、クイズリストに入っている要素数が取れます。
最初は6つ入っていますので、「6」になります。ただ配列の番号は「0」から始まるので、ランダムな数字を「0~5」としなければなりません。そのため、「配列の長さ -1」としています。
その後、クイズリストから選ばれた数字の番号の要素を取り出しています。
ここでポイントなのが、取り出すと同時に「削除」していることです。削除するので、クイズリストから、選ばれたものがなくなります。
こうすることで、次の繰り返しでは、すでに選ばれたものは抜けた状態にできます。
クイズの判定
まずは、以下のようにプログラムを追加してください。
「ABボタン入力〇」ブロックは、入力待ちを作ります。解答で「はい」を選んだら「真」、「いいえ」を選んだら「偽」が返ります。
一方、「答えリスト」から「選ばれた数字」番目の要素を取り出しています。つまり、そのクイズに正しい答えを取り出しています。
この2つを比べて、正しければ上の分岐に、間違っていれば下の分岐に入ります。上の分岐では、「スコア」を1アップさせています。
スコア結果を表示する
上記までの処理を5回繰り返した後に、最後のテロップを作ります。
変数「スコア」を使うことで、ゲーム結果に応じたスコアを表示できます。
下のように入れて下さい。
プログラム確認
「▶」を押して、動きを確認してください。以下が確認できればOKです。
・クイズ問題の後に、入力待ちの画面になる
・正解するとスコアが上がり、不正解だとそのまま
・クイズの問題がランダムに5つ出る
・5回終わった後に、スコアの結果をテロップで表示する
これで完成です。
すべてのプログラム(完成コード)
まとめ
中級の第3回「クイズゲーム」を紹介しました。
配列でクイズと答えを整理する方法、「ABボタン入力」ブロックで入力待ちをする方法を学びました。これらがうまく使えると、作れる作品の幅がぐっと広がります。
次回もお楽しみに♪