MakeCode Arcade【中級】

【中級向け】クイズゲームの作り方(第3回)

対象:中級者向け
ブロック数:55こ

完成品の確認

操作方法

スペースキー(A):はい
エンターキー(B):いいえ

ランダムに5つのクイズが出されます。「はい」か「いいえ」で答えて、5問中どのくらい正解できるかを競います。

準備をしよう

下の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ボタン入力」ブロックで入力待ちをする方法を学びました。これらがうまく使えると、作れる作品の幅がぐっと広がります。

次回もお楽しみに♪

タイトルとURLをコピーしました