真実か挑戦か

このレッスンでは乱数と入出力について学びます!

  • Get started
  • MakeCode
  • Inputs
  • Random
  • Variables
Print lesson
  • 年齢 8+
  • 30 分
  • MakeCode Editor

はじめに

このプロジェクトは、micro:bitのボタン入力とLED表示を使って「真実か挑戦か」ゲームを作る方法を教えます。

先生用ガイド

開く 先生向けのリソースを開く

アクティビティ

5つのステップ

ステップ 1

このプログラムは、マイクロビットが準備完了という意味で矢印を表示して、ユーザーがAボタンを押すと無作為に「真実」か「挑戦」を選んで表示します。

最初のステップは矢印を作ります。ブロックメニューの基本オプションから「LED画面に表示」ブロックを選択します。

Drag the 'show leds' block to the workspace

ワークスペースに「LED画面に表示」ブロックをドラッグして、LEDを点灯させたい四角をクリックしてパターンを描きます。白い四角がLEDオンを意味します。

Draw an arrow pattern on the LEDs

LEDを常に点灯させるために、LEDを「ずっと」内に配置します。「ずっと」はブロックメニューの基本オプションにあります。「ずっと」ブロックをドラッグしてLEDを囲うようにします。

Drag a 'forever' block to the workspace

basic.forever(function () {
    basic.showLeds(`
        . . # . .
        . # # # .
        # # # # #
        . . # . .
        . . # . .
        `)
})
          

ステップ 2

プログラムの次のステップは、ボタンが押されたらランダムに選んだ文を表示することです。 ブロックメニューから入力オプションを選択して、ワークスペースに「ボタンが押されたとき」ブロックをドラッグします。

Drag an 'on button press' block to the workspace

ランダム関数の結果は変数に保存する必要があります。ブロックメニューから「変数」を選択して「変数を追加する」をクリックします。

Click 'make a variable'

変数の名前を入力するようポップアップダイアログボックスが表示されます。以下は変数名をRandomにした例です。

Click 'ok' to rename the variable

「変数~を~にする」ブロックをワークスペースにドラッグして、ボタンAの入力ブロックと接続します。

Drag a 'set item to' block

let item = 0
input.onButtonPressed(Button.A, function () {
    item = 0
})
          

ステップ 3

新しい変数Randomが作成されたので、「変数~を~にする」の下向き矢印を押してRandomを選ぶと、ドロップダウンメニューにこの変数を表示できます。


let Random = 0
input.onButtonPressed(Button.A, function () {
    Random = 0
})
          

Aボタンが押されたとき変数に「0」が設定されるので、次に乱数を設定する必要があります。ブロックメニューの「計算」オプションから「0から10までの乱数」を選択します。

Drag a 'pick random' block to the workspace

「乱数」ブロックをワークスペースにドラッグして、「変数Randomを~にする」ブロックへ結合します。「0から1までの乱数」とすると、ここで必要な2つのオプションが得られます。


let Random = 0
input.onButtonPressed(Button.A, function () {
    Random = Math.randomRange(0, 1)
})
          

ステップ 4

ブロックメニュー内の「論理」オプション内にある「もし~なら」文を使用して、選択のプロセスを含めます。

Drag an 'if' block to the workspace

「もし~なら」ブロックをワークスペースにドラッグして、「乱数」ブロックの下につなげます。「+」をクリックして「でなければ」をブロックに追加してください。


let Random = 0
input.onButtonPressed(Button.A, function () {
    Random = Math.randomRange(0, 1)
    if (true) {
      
    } else {
      
    }
})
          

次に「もし~ならば」により結果を選択する論理条件文を作る必要があります。再びブロックメニューの「論理」オプションから「0 = 0」ブロックを追加します。

Drag an 'equals' block to the workspace

let Random = 0
input.onButtonPressed(Button.A, function () {
    Random = Math.randomRange(0, 1)
    if (0 == 0) {

    } else {

    }
})
          

ステップ 5

「もし~ならば」文を乱数に基づくようにmicro:bitにさせるには、変数Randomに保存されている値をチェックする必要があります。 Random変数はブロックメニューの「変数」オプションにあります。

Drag the 'random' variable to the workspace

Random変数ブロックは、「もし~ならば」文のロジックをテストするため「=」ブロックの中に配置されます。 Random変数が「0」ならば最初のオプションが選択され、そうでなければ2番目のオプションが選ばれます。


let Random = 0
input.onButtonPressed(Button.A, function () {
    Random = Math.randomRange(0, 1)
    if (Random == 0) {

    } else {

    }
})
          

「真実」または「挑戦」の文を画面に表示するには、ブロックメニューの基本オプションにある「文字列を表示」ブロックが必要です。

Drag the 'show string' block to the workspace

プログラムが完了すると、ボタンが押されていないときに矢印パターンのLEDを表示するのと同様に、どちらも同時に動作します。


let Random = 0
input.onButtonPressed(Button.A, function () {
    Random = Math.randomRange(0, 1)
    if (Random == 0) {
        basic.showString("Truth")
    } else {
        basic.showString("Dare")
    }
})
          

プロジェクトを保存してmicro:bitへダウンロードします。

チャレンジ

次の機能を追加しましょう。

  • ゲームにプレイヤー番号を追加して誰がプレイ中か表示する。
  • 違う方向の矢印を追加する。
  • 矢印が回るアニメーションを追加する。
  • 真実または挑戦で終わったかスコアに基づくシステムを追加する。

更に学ぶ

「マジック8」アクティビティでは、このプロジェクトに基づいた質問ベースのゲームを作ります。

Selecting this opens external content from our support system, which adheres to their privacy policy.