micro:bit
  • micro:bit全攻略
  • micro:bit基礎實習
  • 認識micro:bit
  • 開始使用micro:bit
  • 計數器實作
  • 麵包板及電源模組的使用
  • LED(燈光)顯示功能
  • 電子輪盤遊戲實作(內建LED篇)
  • 隨機數的應用–猜大小
  • 使用序列埠輸出資訊
  • 三色 RGB LED實習
  • 伺服馬達基礎實習
  • 光敏電阻基礎實習
  • 繼電器基礎實習
  • OLED顯示器實習
  • 超音波測距實習
  • 音樂積木用的接頭
  • 遙控小車硬體組裝及程式入門
  • 小車程式實作
  • 小車遙控程式
  • 開始使用MicroPython
  • MicroPython程式簡易入門
  • MicroPython按鈕控制
  • MicroPython操作每一顆LED
  • MicroPython亂數的應用
  • MicroPython電子輪盤遊戲實作
  • MicroPython輸出入接腳控制
  • MicroPython飄落的雪花及避障遊戲
  • 上傳檔案到micro:bit
  • MicroPython物件導向程式設計
  • MicroPython無線電通訊
  • MicroPython SSD1306 oled實作
  • MicroPython DHT11溫濕度感測器
  • MicroPython光感測器模組
  • MicroPython繼電器應用
  • MicroPython超音波HC-SR04
  • MicroPython伺服馬達操作
  • 專題--燈籠牆實作
Powered by GitBook
On this page

MicroPython亂數的應用

在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中。

為了增加趣味性,接下來利用一個迴圈來顯示100個不相關的數字,而且每顯示一個數字之後就增加暫停的時間:

for i in range(100):
    display.show(random.randint(0, 9))
    sleep(20+i*2)

在顯示了這些數字之後,再取得正確的答案放在answer中,再作一些小小的閃爍動畫:

answer = random.randint(0, 9)
for i in range(5):
    display.clear()
    sleep(500)
    display.show(answer)
    sleep(500)

最後則是比對玩家猜的數字guess和正確答案,再依相等與否顯示不同的圖案,完整的程式如下:

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)

如果想要再玩一次,只要按下重置按鈕就可以囉。

PreviousMicroPython操作每一顆LEDNextMicroPython電子輪盤遊戲實作

Last updated 6 years ago