在micro:bit的程式應用中隨機亂數是非常有趣的一個函數,這原本是在Python中就有的函數,在microPython中也是一樣可以使用。先來看看以下這個例子:
from microbit import *
import random
while True:
display.show(random.randint(0, 9))
sleep(1000)
上面的這個程式會每隔一秒換一個數字,這個數字由random.randint()函數產生,每一次都不一樣。應用這個函數,我們可以設計一個猜數字的遊戲程式。先來看看如何讓使用者透過按鈕選擇一個數字的程式:
from microbit import *
import random
guess = 5
while True:
if button_a.is_pressed() and button_b.is_pressed():
break;
if button_a.was_pressed():
guess += 1
if guess > 9:
guess = 9
elif button_b.was_pressed():
guess -= 1
if guess < 0:
guess = 0
display.show(guess)
這個程式一開始的時候先讓變數guess設定為5,接下來在迴圈中偵測是否A和B按鈕同時被按下,如果是的話,就離開迴圈,這時候guess的內容就是我們要猜的數字。如果只是按下其中一個按鈕的話,就依照按鈕是哪一個來決定要把guess加1或是減1。同樣的,在加減數字的過程中,只要同時按下兩個按鈕之後就會離開迴圈,也就是確定了玩家要選擇的數字,而且是放在guess中。
for i in range(100):
display.show(random.randint(0, 9))
sleep(20+i*2)
answer = random.randint(0, 9)
for i in range(5):
display.clear()
sleep(500)
display.show(answer)
sleep(500)
from microbit import *
import random
guess = 5
while True:
if button_a.is_pressed() and button_b.is_pressed():
break;
if button_a.was_pressed():
guess += 1
if guess > 9:
guess = 9
elif button_b.was_pressed():
guess -= 1
if guess < 0:
guess = 0
display.show(guess)
for i in range(100):
display.show(random.randint(0, 9))
sleep(20+i*2)
answer = random.randint(0, 9)
for i in range(5):
display.clear()
sleep(500)
display.show(answer)
sleep(500)
if answer == guess:
display.show(Image.HEART)
else:
display.show(Image.SAD)