第 1 步:制作
它是什么?
用您BBC micro:bit玩一个数学游戏! 给它编程,让它从1到100中选择一个随机数。 您可以先自己看看这个随机数是奇数还是偶数,然后再用您的micro:bit检查一下您是否正确。
这两个视频介绍了你将制作什么以及如何编程:
学习目标
您将学到如何将一个简单的数学算法编写成代码,如何在计算机程序中使用选择,以及如何除以一个数字并使用它的余数。
如果您想集中学习数学技能而不是编程上,那么可以下载现成的代码。 点击“Open in MakeCode” 按钮或者在下文里下载hex文件。
工作原理
- 这个程序基于一个算法,这算法用来判断一个数字是奇数还是偶数。 这个算法是这样子的:一个数除以2,如果余数为0,那么这个数字就是偶数。 否则,这个数字就是奇数。
- 当您按下按钮A,程序从1到100中抽取一个数字,然后显示到LED显示屏上。 (程序抽取随机数字而不是一直使用同一个数字,让多次游玩这个游戏能一直有趣。)
- 当您按下按钮B,程序会将上面抽出的数字除以2并得出余数。
- 程序接着使用的是一个“if ... else”语句。 如果(if)余数是0,micro:bit的LED显示屏上显示单词“even”(偶数)。 否则(else),显示单词‘odd’(奇数)。
- 在计算机程序里,条件不同时要做不同的事情,这被称为选择。 像选择这样的关键术语的解释,可以在我们的词汇海报和术语表中找到。
所需材料
- micro:bit或者是MakeCode模拟器
- MakeCode 或者 Python 编辑器
- 电池盒(选配)
第 2 步:编程
1from microbit import *
2import random
3
4# An error could appear if you press button B without pressing button A first.
5# If the variable ‘number’ has not been assigned.
6# To work around this, the value of 101 is assigned to the variable 'number'
7# at the start of the program. When you press button B the program tests
8# first to see if the value of ‘number’ is 101 - if it is, it shows a helpful message.
9
10number = 101
11
12while True:
13 if button_a.was_pressed():
14 number = random.randint(1, 100)
15 display.scroll(number)
16 if button_b.was_pressed():
17 if number == 101:
18 display.scroll('no number chosen yet')
19 elif number%2 == 0:
20 display.scroll('even')
21 else:
22 display.scroll('odd')
第3步:完善
- 想个法子让被抽到的随机数字能够显示多次。
- 如果您在按下按钮A之前就按了按钮B,尽管没有随机抽取数字,此时LED屏幕还是会显示单词“even”(偶数)。 您能修改代码来避免这种情况吗? 看一下Python版本的的程序代码来获得灵感。
- 修改程序,使它能够探索随机数字的其他因数,例如,看看3是不是100的一个因数。
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.