🎰 C12 樂透開獎遊戲設計

Scratch 清單應用與隨機數生成完整教學

📥 下載連結(保持原檔名不改)

基本程式檔:

8XXxx-12.sb3(Google Drive)

原檔說明:用滑鼠左鍵點選下載,檔名不要修改

📚 第一章:課程概觀

🎯 核心概念

  • 清單應用(建立、清空、判斷、比對)
  • 隨機數生成與「不重複」處理
  • 清單比對計數邏輯
  • 使用者輸入檢查(範圍、整數、重複)
  • 條件判斷顯示結果

🎰 樂透遊戲介紹

什麼是樂透開獎遊戲?

樂透開獎遊戲是一個結合清單操作隨機數生成的經典程式設計練習。玩家選擇6個號碼,電腦隨機開出7個號碼(含特別號),透過清單比對來判斷中獎情況。

遊戲範例展示

玩家號碼:

12
25
33
41
7
18

開獎號碼:

12
25
33
41
7
18
29

中獎結果:6個號碼全中!🎉

💡 程式設計重點:本課程將深入學習「清單應用」和「隨機數生成」,包括輸入驗證、不重複處理、清單比對等核心概念。

🛠️ 第二章:核心概念與教材連結

📋 清單應用概念

清單在樂透遊戲中的應用

  • 建立清單:建立「你的號碼」和「對獎號碼」兩個清單
  • 清空清單:每次遊戲開始前清空所有清單
  • 判斷清單:檢查清單是否包含特定號碼
  • 比對清單:計算兩個清單中相同號碼的個數

🎲 隨機數生成與不重複處理

隨機數生成策略

  • 範圍限制:生成1到49之間的隨機數
  • 不重複處理:確保每個號碼只出現一次
  • 清單檢查:加入前先檢查清單是否已包含該號碼
  • 循環生成:重複直到清單達到指定長度

📊 第三章:清單與變數設計

📋 清單設計

清單結構

清單名稱 用途 內容說明 長度
你的號碼 儲存玩家輸入的號碼 玩家選擇的6個號碼(1-49) 6
對獎號碼 儲存電腦開出的號碼 電腦隨機生成的7個號碼(含特別號) 7

🔢 變數設計

變數結構

變數名稱 用途 初始值 資料型態
電腦取號 儲存電腦隨機生成的號碼 隨機數(1-49) 整數
項次 記錄目前處理的項目位置 0 整數
同號個數 記錄中獎號碼的個數 0 整數
⚠️ 重要提醒:
  • 清單名稱要清楚易懂,避免使用數字開頭
  • 變數命名要有意義,方便程式維護
  • 記得在遊戲開始前初始化所有變數

⚙️ 第四章:Scratch 程式流程

🚀 (0) 初始化

遊戲開始前的準備工作

綠旗 被點擊
刪除 你的號碼 的所有項目
刪除 對獎號碼 的所有項目
同號個數 設為 0
顯示背景文字: 8xxxx 林小明

🎯 (1) 玩家下注(輸入 6 個號碼)

玩家號碼輸入流程

當角色被點擊
重複直到 你的號碼 的長度 = 6
詢問 請輸入 1~49 的整數,不可重複 並等待
如果 答案 < 1
說出 輸入有誤!請重新輸入! 2
否則如果 答案 > 49
說出 輸入有誤!請重新輸入! 2
否則如果 答案 包含 "."
說出 輸入有誤!請重新輸入! 2
否則如果 你的號碼 包含 答案
說出 輸入有誤!請重新輸入! 2
否則
答案 加到 你的號碼

🎲 (2) 電腦開獎(隨機 7 個不重複號碼)

電腦號碼生成流程

當接收到 go
重複直到 對獎號碼 的長度 = 7
電腦取號 設為 149 之間取隨機數
如果 不包含 對獎號碼, 電腦取號
電腦取號 加到 對獎號碼

🔍 (3) 比對(計算中獎個數)

號碼比對計算流程

項次 設為 0
同號個數 設為 0
重複 6
項次 改變 1
如果 對獎號碼 包含 你的號碼 的第 項次
同號個數 改變 1

🏆 (4) 判斷結果

中獎結果判斷流程

如果 同號個數 < 3
說出 摃龜!相同號碼只有 同號個數 3
否則
說出 恭喜中獎!相同號碼有 同號個數 3

🛡️ 第五章:使用者輸入檢查與驗證

🔍 輸入驗證機制

四層驗證檢查

檢查項目 驗證條件 錯誤訊息 處理方式
範圍檢查 答案 < 1 或 答案 > 49 輸入有誤!請重新輸入! 重新詢問
整數檢查 答案包含 "." 輸入有誤!請重新輸入! 重新詢問
重複檢查 你的號碼包含答案 輸入有誤!請重新輸入! 重新詢問
長度檢查 你的號碼長度 = 6 無(正常結束) 進入下一階段

🎯 驗證邏輯優化

進階驗證技巧

  • 即時驗證:每次輸入後立即檢查,避免累積錯誤
  • 友善提示:提供清楚的錯誤訊息和操作指引
  • 防呆機制:確保使用者無法輸入無效資料
  • 重試機制:允許使用者重新輸入,直到正確為止
✅ 驗證最佳實踐:
  • 永遠假設使用者會輸入錯誤的資料
  • 提供清楚的錯誤訊息和操作指引
  • 在關鍵操作前進行資料驗證
  • 使用友善的提示訊息,避免技術術語

🚀 第六章:進階挑戰與延伸功能

🌟 進階挑戰項目

挑戰一:特別號判定

功能描述:第7個號碼為特別號,需要額外判斷是否中獎

  • 修改比對邏輯,區分一般號碼和特別號
  • 設計特別號中獎規則
  • 調整中獎判斷條件

挑戰二:排序清單

功能描述:將號碼由小到大排序再顯示

  • 實作氣泡排序演算法
  • 在顯示前對清單進行排序
  • 提供排序前後的對比顯示

挑戰三:電腦下注模擬

功能描述:讓電腦也下注,比對玩家與電腦勝負

  • 建立電腦下注清單
  • 實作電腦下注邏輯
  • 設計勝負比較系統

挑戰四:多局統計

功能描述:連玩多局後統計「平均同號數」或「中獎率」

  • 建立統計變數(總局數、總中獎數等)
  • 實作統計計算邏輯
  • 設計統計結果顯示介面
💡 挑戰提示:這些進階功能可以讓你的樂透遊戲更加豐富和有趣,建議先完成基本功能後再嘗試挑戰項目。

📝 第七章:作業設計與學習評量

🎯 基礎作業

作業一:基本樂透遊戲 (70分)

要求:

  • 完成玩家號碼輸入功能(6個號碼)
  • 實作電腦開獎功能(7個不重複號碼)
  • 完成號碼比對和中獎判斷
  • 加入基本的輸入驗證機制

作業二:進階功能實作 (85分)

在基礎作業基礎上增加:

  • 完整的四層輸入驗證
  • 特別號判定功能
  • 號碼排序顯示
  • 美化的遊戲介面

🌟 創意挑戰

挑戰一:多局統計系統 (100分)

創新功能:

  • 多局遊戲統計
  • 中獎率計算
  • 平均同號數統計
  • 遊戲歷史記錄

挑戰二:互動式樂透系統

進階挑戰:

  • 電腦下注模擬
  • 勝負比較系統
  • 動畫效果展示
  • 音效和視覺回饋

📤 作業繳交流程

繳交檔案要求

  1. Scratch專案檔:儲存為 .sb3 格式,檔名如:81760-12.sb3
  2. 功能截圖:至少4張不同功能的截圖
  3. 設計說明:簡述遊戲特色和創意點
  4. 測試報告:列出所有測試過的功能和結果

🏆 評分標準

評分項目 配分 評分重點
基本功能 40% 號碼輸入、開獎、比對功能完整性
輸入驗證 25% 四層驗證機制、錯誤處理
清單操作 20% 清單建立、比對、計數邏輯正確性
創意表現 15% 額外功能、介面設計、使用者體驗
⬆️ 回到頂部