课程 F——条件语句 2——条件与剪刀石头布的游戏

条件语句的第二课将涉及到一些更加复杂的条件语句。

  • Computer science
  • conditionals
Print lesson
  • 年龄 10+
  • 65+ 分钟
  • JavaScript Blocks

课程介绍

本系列的第一课是关于条件, "条件和天气预测",重点讲述了一个基本的”if...then...else'“逻辑积木块。 如果你还没有讲解到这一课,或者是学生们学习吃力感到有困难,那么请再次学习这个课程。

条件语句的第二课将涉及到一些更加复杂的条件语句。 它使我们能够判断两个以上的结果。 我们用micro:bit来玩剪刀石头布的游戏时将会用到它。 最后,我们这个游戏将能够正常工作,甚至记录得分情况哦!

我们的micro:bit课程是根据 Code.org CS 的基础知识应用而量身定做的。 在学生开始这些课程之前, 我们鼓励学生们先完成所有的 CS 基础知识。 学生们应该熟悉 Code.org CS 基础的条件。

教学指南

打开

课堂活动

你将需要这些:

  • 1块micro:bit主板
  • 1根USB线
  • 1个AAA电池组(可选)
  • 2节AAA电池(可选)

编写文本

if (true) {

} else if (false) {

} else {

}

如果

条件代码是否运行取决于布尔条件是真还是假


let item = 0
item = 0
            

设置项目

用一个等号来使变量存储你指定的数字或字符串。

让项目 = 数学.随机数(5)

随机数

返回 0 到“限值”之间的伪随机数。

基本.显示图标(图标名称.心)

显示图标

在LED 屏幕上显示所选图标

输入.手势(手势.摇晃, () => {})

当摇晃的时候

启动一个事件处理器 (当发生某件事情时,部分程序将启动)。当你做手势的时候, 这个处理程序会起作用 (像摇晃micro:bit)。

4个步骤

指导练习

我们将在网上提供micro:bit教程或代码示例。接下来,去到https://makecode.microbit.org


let RandomNumber = 0
input.onGesture(Gesture.Shake, () => {
    RandomNumber = Math.random(3)
    if (RandomNumber == 0) {
        basic.showIcon(IconNames.SmallSquare)
    } else if (RandomNumber == 1) {
        basic.showIcon(IconNames.Square)
    } else {
        basic.showIcon(IconNames.Scissors)
    }
})
input.onButtonPressed(Button.A, () => {

})
input.onButtonPressed(Button.B, () => {

})
        

当摇晃的时候,micro:bit将会显示剪刀、石头或者布的图标。 用力晃动模拟器上的micro:bit,或者按下震动按钮来触发该事件。 晃动之后,你将看到显示出来的一个图标。

晃动会使micro:bit随机选择0、1或者2。

我们将根据数值作出判断。

  • if (RandomNumber = 0) >> show rock
  • if (RandomNumber = 1) >> show paper
  • if (RandomNumber = 2) >> show scissors

注意:在代码的底部和旁边的未使用的积木块将会在挑战中用到。

在此查看完成后的代码。

挑战

挑战1

你能用micro:bit来追踪你获胜的时间吗?

提示:将你的积木块放在事件处理器中,执行当按钮A被按下的代码。你将需要在on start(开始)事件处理器中发起(创建)一个变量来保存你的得分。

查看代码

让 分数 = 0
让 随机数 = 0
输入.手势(手势.摇晃, () => {
    随机数 = 数学.随机数(3)
    如果 (随机数 == 0) {
       基本.显示图标(图标名称.小方格)
    } 又如果 (随机数 == 1) {
        基本.显示图标(图标名称.方格)
    } 或者 {
        基本.显示图标(图标名称.剪刀)
    }
})
输入.当按钮被按下(按钮.A, () => {
    分数 += 1
})
输入.当按钮被按下(按钮.B, () => {

})
分数= 0
 
          

在此可以查看完成后的代码。

挑战2

如果你输了呢? 当你输了的时候, 你能减去分数吗?

提示: 将你的积木块放在“on button B pressed”(当按钮B被按下)的事件处理器中。

查看代码

let Score = 0
let RandomNumber = 0
input.onGesture(Gesture.Shake, () => {
    RandomNumber = Math.random(3)
    if (RandomNumber == 0) {
        basic.showIcon(IconNames.SmallSquare)
    } else if (RandomNumber == 1) {
        basic.showIcon(IconNames.Square)
    } else {
        basic.showIcon(IconNames.Scissors)
    }
})
input.onButtonPressed(Button.A, () => {
    Score += 1
})
input.onButtonPressed(Button.B, () => {
    Score += -1
})
Score = 0
          

在此查看完成后的代码。

挑战3

我们如何显示得分呢?

提示: 将你的积木块放在“on button A+B pressed”(当按钮A+B被按下)的事件处理器中。

查看代码

let Score = 0
let RandomNumber = 0
input.onGesture(Gesture.Shake, () => {
    RandomNumber = Math.random(3)
    if (RandomNumber == 0) {
        basic.showIcon(IconNames.SmallSquare)
    } else if (RandomNumber == 1) {
        basic.showIcon(IconNames.Square)
    } else {
        basic.showIcon(IconNames.Scissors)
    }
})
input.onButtonPressed(Button.A, () => {
    Score += 1
})
input.onButtonPressed(Button.B, () => {
    Score += -1
})
input.onButtonPressed(Button.AB, () => {
    basic.showNumber(Score)
})
Score = 0
          

在此查看完成后的代码。

独立练习

用micro:bit创作属于你的六面骰子,并创作一个冒险板游戏。这个骰子可能是定制的。如果你投掷一次,会发生什么呢?

示例-如果你投掷一次,你会发现一些宝藏。

提示:你将需要增加RandomNumber(随机数)并创建一个更长的if积木块。

问答

用这些问题来反应活动和挑战。

问题1

在活动中写上选择从0到2的随机数的代码,并将数值存储在一个叫做“RandomNumber”(随机数)的变量中。

显示答案

注意:我们高亮度显示了用于存储随机数数值的积木块,也就是叫做RandomNumber(随机数)的一个变量。代码的第二部分将随机地返回到0-3之中的一个数。

问题2

如果变量“RandomNumber”(随机数)等于0,将会显示什么图标呢?

显示答案

代码将会显示石头。

问题3

如果变量“RandomNumber”(随机数)不等于0,会显示什么图标呢?

显示答案

代码将会显示剪刀和石头。

问题4

如果变量“RandomNumber”(随机数)不等于0,将会显示什么图标呢?

显示答案

代码将会显示剪刀。

了解更多

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