🎮 C04 迷宮遊戲-選擇結構2

進階條件判斷與迷宮遊戲開發完整教學

📚 第一章:課程介紹與學習目標

🎯 學習目標

  • 掌握進階選擇結構的應用
  • 學習複合條件判斷
  • 開發完整的迷宮遊戲
  • 實作碰撞檢測系統
  • 設計遊戲關卡機制

🎮 迷宮遊戲概念

迷宮遊戲是一個經典的程式設計專案,需要運用多種程式概念:

遊戲核心元素

  • 玩家角色:可控制的遊戲角色
  • 迷宮地圖:由牆壁和通道組成
  • 碰撞檢測:判斷是否撞到牆壁
  • 勝利條件:到達終點的判斷
  • 關卡系統:多個不同難度的迷宮

迷宮遊戲示意圖

S
E

S = 起點, E = 終點, 黑色 = 牆壁, 白色 = 通道

💡 程式設計重點:本課程將深入學習「選擇結構2」,包括複合條件判斷、巢狀條件結構,以及如何將這些概念應用到實際遊戲開發中。

🛠️ 第二章:準備工作與遊戲設計

📋 遊戲企劃書

遊戲基本設定

項目 內容 說明
遊戲名稱 超級迷宮大冒險 吸引人的遊戲標題
主角 小貓咪 玩家控制的角色
目標 找到出口 遊戲勝利條件
操作 方向鍵移動 簡單直覺的控制
難度 三個關卡 逐漸增加挑戰性

🎨 角色與場景設計

步驟一:建立新專案

  1. 開啟Scratch,點選「建立」
  2. 刪除預設的貓咪角色
  3. 設定專案名稱為「迷宮遊戲」
📷 新專案建立截圖
建議尺寸:800x450像素

步驟二:設計玩家角色

  1. 點選「選擇一個角色」
  2. 選擇喜歡的角色(建議:小貓、小狗或球)
  3. 調整角色大小為適中
  4. 設定角色初始位置
當 🏁 被點擊 定位到 x: (-200) y: (150) 造型換成 (costume1) 設定 [關卡 v] 為 (1) 設定 [分數 v] 為 (0)

步驟三:建立迷宮背景

  1. 點選舞台區域
  2. 點選「選擇一個背景」
  3. 選擇或繪製迷宮背景
  4. 確保有清楚的牆壁和通道區分
📷 迷宮背景設計截圖
建議尺寸:480x360像素
⚠️ 設計提醒:
  • 迷宮通道寬度要適中,讓角色可以通過
  • 牆壁顏色要與通道明顯區分
  • 起點和終點要清楚標示
  • 避免設計過於複雜的迷宮

🧠 第三章:進階選擇結構與條件判斷

🎯 本章重點

學習複合條件判斷、巢狀選擇結構,以及如何在遊戲中應用這些概念進行碰撞檢測和狀態判斷。

🔍 複合條件判斷

什麼是複合條件?

複合條件是指同時檢查多個條件的判斷方式,使用邏輯運算子來組合多個條件。

邏輯運算子 功能 範例
且 (AND) 所有條件都成立 按下右鍵 且 沒有碰到牆壁
或 (OR) 至少一個條件成立 碰到紅色 或 碰到黑色
非 (NOT) 條件不成立 不是 碰到牆壁

實作範例:安全移動檢測

在迷宮遊戲中,我們需要檢查玩家是否可以安全移動:

如果 << 按鍵 [右鍵 v] 被按下? > 且 < 不是 < 碰到顏色 (#000000)? > > 那麼 x 改變 (5) 結束
💡 程式邏輯解析:
  • 條件1:按鍵 [右鍵] 被按下?
  • 條件2:不是 碰到顏色 (黑色)?
  • 結果:兩個條件都成立時,角色才會向右移動

🏗️ 巢狀選擇結構

什麼是巢狀結構?

巢狀選擇結構是指在一個條件判斷內部,再包含另一個條件判斷的結構。

如果 < 按鍵 [上鍵 v] 被按下? > 那麼 如果 < 不是 < 碰到顏色 (#000000)? > > 那麼 y 改變 (5) 否則 播放音效 [碰撞 v] 說出 [撞到牆了!] (1) 秒 結束 結束

實作:完整的移動控制系統

結合複合條件和巢狀結構,建立完整的角色移動控制:

當 🏁 被點擊 重複無限次 如果 < 按鍵 [上鍵 v] 被按下? > 那麼 y 改變 (3) 如果 < 碰到顏色 (#000000)? > 那麼 y 改變 (-3) 結束 結束 如果 < 按鍵 [下鍵 v] 被按下? > 那麼 y 改變 (-3) 如果 < 碰到顏色 (#000000)? > 那麼 y 改變 (3) 結束 結束 如果 < 按鍵 [左鍵 v] 被按下? > 那麼 x 改變 (-3) 如果 < 碰到顏色 (#000000)? > 那麼 x 改變 (3) 結束 結束 如果 < 按鍵 [右鍵 v] 被按下? > 那麼 x 改變 (3) 如果 < 碰到顏色 (#000000)? > 那麼 x 改變 (-3) 結束 結束 結束
✅ 程式設計技巧:
  • 先移動,再檢查碰撞,如果碰撞就退回
  • 這種方式可以確保角色不會卡在牆壁裡
  • 移動距離要適中,太大會不流暢,太小會太慢

🎮 第四章:完整迷宮遊戲開發

🎯 勝利條件檢測

設計終點檢測系統

當玩家到達迷宮終點時,需要檢測並觸發勝利事件:

當 🏁 被點擊 重複無限次 如果 < 碰到顏色 (#00ff00)? > 那麼 播放音效 [勝利 v] 說出 [恭喜過關!] (2) 秒 分數 改變 (100) 如果 < (關卡) < (3) > 那麼 關卡 改變 (1) 背景換成 [迷宮2 v] 定位到 x: (-200) y: (150) 否則 說出 [遊戲全破!] (3) 秒 停止 [全部 v] 結束 等待 (1) 秒 結束 結束

建立多關卡系統

設計三個不同難度的迷宮關卡:

關卡 特色 難度 獎勵分數
第一關 簡單直線迷宮 100分
第二關 分岔路徑迷宮 ⭐⭐ 200分
第三關 複雜多層迷宮 ⭐⭐⭐ 300分

⏱️ 計時與計分系統

建立遊戲變數

在「變數」區塊中建立以下變數:

  • 分數:記錄玩家得分
  • 關卡:記錄目前關卡
  • 時間:記錄遊戲時間
  • 生命:記錄剩餘生命數
當 🏁 被點擊 設定 [分數 v] 為 (0) 設定 [關卡 v] 為 (1) 設定 [時間 v] 為 (0) 設定 [生命 v] 為 (3) 重複無限次 等待 (1) 秒 時間 改變 (1) 結束

💀 生命系統與重新開始

實作生命系統

當玩家碰到陷阱或敵人時,減少生命值:

當 🏁 被點擊 重複無限次 如果 < 碰到顏色 (#ff0000)? > 那麼 播放音效 [受傷 v] 生命 改變 (-1) 如果 < (生命) > (0) > 那麼 說出 [小心陷阱!] (1) 秒 定位到 x: (-200) y: (150) 否則 說出 [遊戲結束!] (2) 秒 停止 [全部 v] 結束 等待 (1) 秒 結束 結束
📷 完整遊戲運行截圖
建議尺寸:800x600像素
包含:角色、迷宮、分數顯示、關卡資訊

⚡ 第五章:遊戲功能強化與優化

🎵 音效與視覺效果

添加遊戲音效

為不同的遊戲事件添加適當的音效:

  • 移動音效:腳步聲或移動音
  • 碰撞音效:撞擊或錯誤音
  • 勝利音效:成功或慶祝音
  • 背景音樂:循環播放的背景音
當 🏁 被點擊 重複播放音效 [背景音樂 v]

視覺特效設計

增加遊戲的視覺吸引力:

當收到訊息 [過關 v] 特效 [彩色 v] (0.5) 秒 大小改變 (20) 等待 (0.2) 秒 大小改變 (-20)

🤖 智能提示系統

實作提示功能

當玩家卡關時,提供智能提示:

當按鍵 [h v] 被按下 如果 < (關卡) = (1) > 那麼 說出 [試試往右走!] (2) 秒 結束 如果 < (關卡) = (2) > 那麼 說出 [注意分岔路!] (2) 秒 結束 如果 < (關卡) = (3) > 那麼 說出 [仔細觀察地圖!] (2) 秒 結束

📊 遊戲數據統計

建立成績記錄系統

記錄玩家的遊戲表現:

當收到訊息 [遊戲結束 v] 設定 [最終分數 v] 為 (分數) 設定 [完成時間 v] 為 (時間) 如果 < (最終分數) > (最高分數) > 那麼 設定 [最高分數 v] 為 (最終分數) 說出 [新紀錄!] (2) 秒 結束
🎉 遊戲完成檢核表:
  • ✅ 角色可以用方向鍵控制移動
  • ✅ 碰到牆壁時無法通過
  • ✅ 到達終點時顯示過關訊息
  • ✅ 有多個關卡可以挑戰
  • ✅ 分數和時間正確計算
  • ✅ 音效和視覺效果正常

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

🎯 基礎作業

作業一:基本迷宮遊戲 (70分)

要求:

  • 建立一個簡單的迷宮遊戲
  • 玩家可以用方向鍵控制角色移動
  • 實作基本的碰撞檢測
  • 設計起點和終點
  • 到達終點時顯示勝利訊息

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

在基礎作業基礎上增加:

  • 設計至少3個不同的關卡
  • 加入計分系統
  • 實作生命系統
  • 添加音效和視覺效果
  • 設計遊戲開始和結束畫面

🌟 創意挑戰

挑戰一:智能迷宮 (100分)

創新功能:

  • 隨機生成迷宮地圖
  • 加入移動的敵人或障礙
  • 設計道具系統(加速、無敵等)
  • 實作小地圖顯示功能
  • 建立排行榜系統

挑戰二:多人迷宮競賽

進階挑戰:

  • 支援兩個玩家同時遊戲
  • 設計競速或對戰模式
  • 加入特殊技能或道具
  • 實作即時計分比較

📤 作業繳交方式

繳交檔案要求

  1. Scratch專案檔:儲存為 .sb3 格式
  2. 遊戲截圖:至少3張不同關卡的截圖
  3. 設計說明:簡述遊戲特色和創意點
  4. 檔名格式:學號_姓名_迷宮遊戲
📷 作業繳交截圖範例
建議尺寸:800x400像素
包含:遊戲畫面、程式碼片段、創意功能展示

🏆 評分標準

評分項目 配分 評分重點
程式功能 40% 基本功能完整性、程式邏輯正確性
選擇結構應用 25% 條件判斷使用恰當、複合條件運用
遊戲設計 20% 關卡設計合理、難度漸進、遊戲性
創意表現 15% 獨特功能、視覺設計、音效運用
⬆️ 回到頂部