真心话大冒险

让我们通过这个有趣的活动来学习随机数、输入和输出吧!

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

简介

这个项目会教你如何使用按钮输入和LED输出在micro:bit上创建一个有趣的“真心话大冒险”游戏哦!

教学指南

打开 打开 teacher resources

课堂活动

5个步骤

第一步

这个程序将会通过在micro:bit上显示一个旋转的箭头来选择玩家。然后,用户按下按钮A,看到一个随机生成的语句,并选择“Truth”(真)或者“Dare”(假)。

第一阶段是创建箭头。从积木块菜单中的basic(基本)选项中,选择“show leds”(显示LED)积木块。

Drag the 'show leds' block to the workspace

Drag the “Show leds” block onto the workspace and draw the pattern by clicking on the boxes that you want to light up. A white square indicates LED on.

Draw an arrow pattern on the LEDs

为了确保LED灯一直保持点亮,“show leds”这个积木块将永远被放置在一个forever(永久)循环中。这个循环可以从积木块菜单中的basic(基本)选项中找到。将forever积木块拖拽,并让它包围“show leds”。

Drag a 'forever' block to the workspace

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

第二步

程序的下一步是让用户按下一个按钮的时候,显示一个随机语句。 从积木块菜单中选择Input(输入)选项,找到“On button press”(当按钮被按下),并将它拖拽到工作区域。

Drag an 'on button press' block to the workspace

随机函数的结果需要被存储在一个变量中。从积木块菜单中,选择“Variable”(变量)并点击“Make a Variable”(创建一个变量)。

Click 'make a variable'

然后会弹出一个对话框,要求你给变量命名。在这个例子中,将它命名为“Make a Variable”(创建一个变量)。

Click 'ok' to rename the variable

用“set item”(设置项目)积木块,将它拖拽到工作区域,并连接到按钮“A”的输入积木块。

Drag a 'set item to' block

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

第三步

现在,变量“Random”(随机)已经被创建,你可以在“Set item”(设置项目)的下拉菜单中找到它。通过按下向下的箭头,选择“Random”(随机)。


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

Now that the variable is set to “0” when the A button is pressed, we now need to assign a random number to it. From the block menu select the “Math” option and select “pick random 0 to 10”

Drag a 'pick random' block to the workspace

将“pick random”(选择随机)积木块拖拽到工作区域,并将它添加到“set random”(设置随机)积木块的下方。一个在0和1之间的随机数将会给我们提供2种选择。


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

第四步

现在,我们用积木块菜单下“logic”(逻辑)选项中的IF语句来添加一个选择过程。

Drag an 'if' block to the workspace

Drag the “IF” block into the workspace and connect it to follow the “random” block; click '+' to add 'else' to the block.


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

接下来,我们需要为 IF 语句创建一个逻辑语句使我们能够进行选择。再次从积木块菜单中选择 "logic" (逻辑)选项,添加一个 "equals"(等于)积木块。

Drag an 'equals' block to the workspace

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

    } else {

    }
})
          

第五步

为了确保micro:bit的IF语句基于随机数,存储在变量“Random”(随机)的数值需要被检查。 The “Random” variable can be found from the 'variables' option in the block menu.

Drag the 'random' variable to the workspace

将变量“Random”(随机)积木块放置在“equals”(等于)积木块下方来测试IF语句的逻辑。 如果变量“Random”(随机)包含了一个“0”,那么第一个选项就被选出来了,不然就会选择第二个选项。


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

    } else {

    }
})
          

To get the "Truth or Dare" statements displayed on the screen the “show string” block is required from the basic option on the block menu.

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。

挑战

试着添加下列功能:

  • 在游戏中添加玩家的序号,并显示谁在玩。
  • 添加箭头的不同方向。
  • 添加一个箭头旋转的动画。
  • 添加一个基于分数的系统,看看是否答对了truth(真)或dare(假)。

了解更多

“魔术8”活动是以这个项目为基础创建的一个基于问题的游戏。

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