🥭MangoBox
回課程列表
777 隨機燈號遊戲遊戲專題

COURSE DETAIL

777 隨機燈號遊戲

整合隨機數、按鈕與燈光,完成可重複遊玩的迷你遊戲。

預估時間180 分鐘適用能力具迴圈與函式概念
查看課程章節

CHAPTERS

課程章節

依序閱讀、操作,再用完成檢查確認自己的學習成果。
  1. 01
    CHAPTER 1

    遊戲規則

    閱讀本課隨機數遊戲規則,說明三個數字相同時代表什麼。

    確認學習目標與設備 →
  2. 02
    CHAPTER 2

    隨機結果

    找出隨機數產生與 OLED 顯示的位置,觀察每次執行的差異。

    對照本課完整程式 →
  3. 03
    CHAPTER 3

    按鈕事件

    按下按鈕觸發遊戲,追蹤數字與輸贏燈色之間的判斷。

    對照本課完整程式 →
  4. 04
    CHAPTER 4

    完成與測試

    進行多輪遊戲,記錄結果,檢查提示音與燈色是否符合程式規則。

    對照本課完整程式 →

完成檢查

每次按下按鈕產生三個 1–7 數字;777 亮綠色,其餘亮橘色。

保留程式與觀察紀錄,說明你修改了哪個部分,以及結果如何改變。

學習目標

  • 使用隨機數
  • 整合事件與輸出
  • 建立遊戲規則

所需設備

  • Windows 電腦
  • MangoThonny v0.4.0(Host Student API v0.4.6)
  • MangoX2 + Pico/Pico W/Pico 2 W
  • MangoX2 Runtime v0.2.6
  • USB 資料線、Host UART 所需 USB-to-TTL 連線
  • Button 模組(已啟用)
  • 八顆 RGB LED 教學模組(已啟用,index 0–7)
  • 128×64 I2C OLED 模組(已啟用)
  • MangoX2 板載蜂鳴器

PROJECT PREVIEW

課程成果預覽

777 互動遊戲每次按下按鈕產生三個 1–7 數字;777 亮綠色,其餘亮橘色。
本課使用的 Mango X2 開發板

TRY IT

程式與實作

程式需在 MangoThonny 的 Host / CPython 執行;本頁提供閱讀與 RGB 燈效示意。
main.py
from mangobox import Mango
import random
from threading import Lock

m = Mango(mode="hardware")
round_lock = Lock()
def play():
    with round_lock:
        numbers = [random.randint(1, 7) for _ in range(3)]
        won = numbers == [7, 7, 7]
        m.clear()
        m.text(" ".join(map(str, numbers)), 10, 20)
        m.led_all("#00FF00" if won else "#FF7A00")
        m.beep()

m.clear()
m.text("Press to play", 0, 0)
m.when_pressed("button", play)
m.start_button(100)
m.run_forever()

在 MangoThonny 執行

每次按下按鈕產生三個 1–7 數字;777 亮綠色,其餘亮橘色。

下載本課 Python 範例 →

執行前請核對所需設備與頁面下方的執行環境。程式只在桌面工具執行,這個網頁不執行 Python 或連接硬體。

ENVIRONMENT & VERSIONS

本課執行環境與版本

執行方式
Host / CPython · hardware(程式在 Windows 電腦執行)
工具與韌體
MangoThonny v0.4.0 · Host Student API v0.4.6 · MangoX2 Runtime v0.2.6
適用硬體
MangoX2 + Pico/Pico W/Pico 2 W;依課程所需模組設定

本課以 MangoX2 教學套件為基準。MangoLite 需另核對模組、Enable 與 LED 數量,本課尚未宣稱直接相容。

先用 Device Manager 確認模組啟用、GPIO 與連線;MangoX2 的 OLED、RGB 和按鈕屬套件模組,不能只看裸板名稱判定已備妥。Host UART 與原生 Pico USB 的用途不同。

本課 API 核對紀錄 · 2026-09-09

已核對官方文件與 Host 原始碼;本課尚未完成實機驗證

這是本站隨機遊戲延伸範例;老師新版 06-MangoX2-777Game.py 實際為 7.77 秒計時挑戰,兩者不是同一份教材。

對照來源:本站延伸實作;API 對照 HostPython/05-MangoX2-Button_LED.py

官方來源:MangoBox-Platform 公開 API 契約(2026-09-06)與 MangoThonny Host 原始碼 983cc296。本站範例為課程改寫,非逐字複製老師教材。

  • m.clear()清除 OLED 畫面
  • m.text(text, x=0, y=0, size=1)在 OLED 顯示文字,支援換行
  • m.led_all(color="#ffffff", duration=0, strip=None)設定全部 RGB LED 為同一顏色
  • m.beep()bee() 的相容名稱
  • m.when_pressed(sensor='button', callback=None)註冊按下事件的便利寫法
  • m.start_button(period=100)啟動按鈕週期監看
  • m.run_forever()Host:保持電腦程式存活以接收事件;不是 Pico Scheduler 迴圈。