📚 第一章:課程介紹與學習目標
🎯 學習目標
- 掌握進階選擇結構的應用
- 學習複合條件判斷
- 開發完整的迷宮遊戲
- 實作碰撞檢測系統
- 設計遊戲關卡機制
🎮 迷宮遊戲概念
迷宮遊戲是一個經典的程式設計專案,需要運用多種程式概念:
遊戲核心元素
- 玩家角色:可控制的遊戲角色
- 迷宮地圖:由牆壁和通道組成
- 碰撞檢測:判斷是否撞到牆壁
- 勝利條件:到達終點的判斷
- 關卡系統:多個不同難度的迷宮
迷宮遊戲示意圖
S = 起點, E = 終點, 黑色 = 牆壁, 白色 = 通道
💡 程式設計重點:本課程將深入學習「選擇結構2」,包括複合條件判斷、巢狀條件結構,以及如何將這些概念應用到實際遊戲開發中。
🧠 第三章:進階選擇結構與條件判斷
🎯 本章重點
學習複合條件判斷、巢狀選擇結構,以及如何在遊戲中應用這些概念進行碰撞檢測和狀態判斷。
🔍 複合條件判斷
什麼是複合條件?
複合條件是指同時檢查多個條件的判斷方式,使用邏輯運算子來組合多個條件。
邏輯運算子 |
功能 |
範例 |
且 (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像素
包含:角色、迷宮、分數顯示、關卡資訊