|
|
<!--
|
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
|
{
|
|
|
"original_hash": "232d592791465c1678cab3a2bb6cd3e8",
|
|
|
"translation_date": "2025-10-22T22:54:13+00:00",
|
|
|
"source_file": "6-space-game/6-end-condition/assignment.md",
|
|
|
"language_code": "mo"
|
|
|
}
|
|
|
-->
|
|
|
# 建立範例遊戲
|
|
|
|
|
|
## 作業概述
|
|
|
|
|
|
現在您已經掌握了太空遊戲中的遊戲結束條件和重新開始功能,是時候將這些概念應用到一個全新的遊戲體驗中。您將設計並建立自己的遊戲,展示不同的結束條件模式和重新開始機制。
|
|
|
|
|
|
這項作業旨在挑戰您在遊戲設計方面的創造力,同時練習您所學到的技術技能。您將探索不同的勝利和失敗場景,實現玩家進程,並創造引人入勝的重新開始體驗。
|
|
|
|
|
|
## 專案需求
|
|
|
|
|
|
### 核心遊戲功能
|
|
|
|
|
|
您的遊戲必須包含以下基本元素:
|
|
|
|
|
|
**多樣化的結束條件**:至少實現兩種不同的遊戲結束方式:
|
|
|
- **基於分數的勝利**:玩家達到目標分數或收集特定物品
|
|
|
- **基於生命的失敗**:玩家失去所有可用生命或健康值
|
|
|
- **完成目標**:擊敗所有敵人、收集特定物品或完成目標
|
|
|
- **基於時間**:遊戲在設定的時間結束或倒數計時歸零
|
|
|
|
|
|
**重新開始功能**:
|
|
|
- **清除遊戲狀態**:移除所有先前的遊戲物件並重置變數
|
|
|
- **重新初始化系統**:以新的玩家狀態、敵人和目標重新開始
|
|
|
- **用戶友好的控制**:提供清晰的重新開始遊戲指示
|
|
|
|
|
|
**玩家反饋**:
|
|
|
- **勝利訊息**:用正面的反饋慶祝玩家的成就
|
|
|
- **失敗訊息**:提供鼓勵性的訊息以激勵玩家重新挑戰
|
|
|
- **進度指示器**:顯示當前分數、生命或目標狀態
|
|
|
|
|
|
### 遊戲創意與靈感
|
|
|
|
|
|
選擇以下遊戲概念之一或創造自己的遊戲:
|
|
|
|
|
|
#### 1. 主機冒險遊戲
|
|
|
創建一個基於文字的冒險遊戲,包含戰鬥機制:
|
|
|
|
|
|
```
|
|
|
Hero> Strikes with broadsword - orc takes 3p damage
|
|
|
Orc> Hits with club - hero takes 2p damage
|
|
|
Hero> Kicks - orc takes 1p damage
|
|
|
Game> Orc is defeated - Hero collects 2 coins
|
|
|
Game> ****No more monsters, you have conquered the evil fortress****
|
|
|
```
|
|
|
|
|
|
**需要實現的主要功能:**
|
|
|
- **回合制戰鬥**,提供不同的攻擊選項
|
|
|
- **健康值**,適用於玩家和敵人
|
|
|
- **物品庫系統**,用於收集硬幣或物品
|
|
|
- **多種敵人類型**,難度各異
|
|
|
- **勝利條件**,擊敗所有敵人
|
|
|
|
|
|
#### 2. 收集遊戲
|
|
|
- **目標**:在避開障礙物的同時收集特定物品
|
|
|
- **結束條件**:達到目標收集數量或失去所有生命
|
|
|
- **進程**:隨著遊戲進行,物品變得更難收集
|
|
|
|
|
|
#### 3. 拼圖遊戲
|
|
|
- **目標**:解決越來越難的拼圖
|
|
|
- **結束條件**:完成所有關卡或耗盡移動次數/時間
|
|
|
- **重新開始**:重置至第一關並清除進度
|
|
|
|
|
|
#### 4. 防禦遊戲
|
|
|
- **目標**:保護基地免受敵人波次攻擊
|
|
|
- **結束條件**:成功抵禦所有波次(勝利)或基地被摧毀(失敗)
|
|
|
- **進程**:敵人波次的難度和數量逐漸增加
|
|
|
|
|
|
## 實施指南
|
|
|
|
|
|
### 開始
|
|
|
|
|
|
1. **規劃您的遊戲設計**:
|
|
|
- 繪製基本的遊戲循環
|
|
|
- 明確定義您的結束條件
|
|
|
- 確定重新開始時需要重置的數據
|
|
|
|
|
|
2. **設置您的專案結構**:
|
|
|
```
|
|
|
my-game/
|
|
|
├── index.html
|
|
|
├── style.css
|
|
|
├── game.js
|
|
|
└── README.md
|
|
|
```
|
|
|
|
|
|
3. **創建您的核心遊戲循環**:
|
|
|
- 初始化遊戲狀態
|
|
|
- 處理用戶輸入
|
|
|
- 更新遊戲邏輯
|
|
|
- 檢查結束條件
|
|
|
- 渲染當前狀態
|
|
|
|
|
|
### 技術需求
|
|
|
|
|
|
**使用現代 JavaScript**:
|
|
|
- 使用 `const` 和 `let` 進行變數宣告
|
|
|
- 適當使用箭頭函數
|
|
|
- 實現 ES6+ 特性,例如模板字面值和解構賦值
|
|
|
|
|
|
**事件驅動架構**:
|
|
|
- 為用戶交互創建事件處理器
|
|
|
- 通過事件實現遊戲狀態更改
|
|
|
- 使用事件監聽器實現重新開始功能
|
|
|
|
|
|
**乾淨的代碼實踐**:
|
|
|
- 編寫具有單一職責的函數
|
|
|
- 使用描述性變數和函數名稱
|
|
|
- 添加註解解釋遊戲邏輯和規則
|
|
|
- 將代碼組織成邏輯部分
|
|
|
|
|
|
## 提交要求
|
|
|
|
|
|
### 可交付成果
|
|
|
|
|
|
1. **完整的遊戲文件**:所有運行遊戲所需的 HTML、CSS 和 JavaScript 文件
|
|
|
2. **README.md**:文檔說明:
|
|
|
- 如何玩您的遊戲
|
|
|
- 您實現了哪些結束條件
|
|
|
- 重新開始的指示
|
|
|
- 任何特殊功能或機制
|
|
|
3. **代碼註解**:清晰解釋您的遊戲邏輯和算法
|
|
|
|
|
|
### 測試清單
|
|
|
|
|
|
在提交之前,請確認您的遊戲:
|
|
|
|
|
|
- [ ] **在瀏覽器控制台中無錯誤運行**
|
|
|
- [ ] **按規定實現多種結束條件**
|
|
|
- [ ] **正確重新開始並清除狀態**
|
|
|
- [ ] **向玩家提供清晰的遊戲狀態反饋**
|
|
|
- [ ] **使用現代 JavaScript 語法和最佳實踐**
|
|
|
- [ ] **在 README.md 中包含全面的文檔**
|
|
|
|
|
|
## 評估標準
|
|
|
|
|
|
| 評估標準 | 卓越 (4) | 熟練 (3) | 發展中 (2) | 初步 (1) |
|
|
|
|----------|----------|----------|----------|----------|
|
|
|
| **遊戲功能** | 完整的遊戲,具有多種結束條件、流暢的重新開始和精緻的遊戲體驗 | 完整的遊戲,具有基本的結束條件和功能性重新開始機制 | 部分遊戲,實現了一些結束條件,重新開始可能有小問題 | 不完整的遊戲,功能有限且存在重大錯誤 |
|
|
|
| **代碼質量** | 使用現代 JavaScript 實踐的乾淨、組織良好的代碼,全面的註解和出色的結構 | 良好的代碼組織,使用現代語法,註解充分,結構清晰 | 基本的代碼組織,使用了一些現代實踐,註解較少 | 糟糕的代碼組織,語法過時,缺乏註解和結構 |
|
|
|
| **用戶體驗** | 直觀的遊戲玩法,清晰的指示,出色的反饋和引人入勝的結束/重新開始體驗 | 良好的遊戲玩法,指示和反饋充分,結束/重新開始功能正常 | 基本的遊戲玩法,指示有限,遊戲狀態反饋不足 | 混亂的遊戲玩法,指示不清晰,用戶反饋差 |
|
|
|
| **技術實施** | 展示了對遊戲開發概念、事件處理和狀態管理的精通 | 展示了對遊戲概念的扎實理解,實施良好 | 基本理解,實施尚可 | 理解有限,實施不佳 |
|
|
|
| **文檔** | 詳盡的 README,提供清晰的指示、完善的代碼註解和充分的測試證據 | 良好的文檔,指示清晰,代碼註解充分 | 基本的文檔,指示有限 | 文檔不完整或缺失 |
|
|
|
|
|
|
### 評分標準
|
|
|
- **卓越 (16-20 分)**:超出預期,具有創意功能和精緻的實施
|
|
|
- **熟練 (12-15 分)**:滿足所有要求,執行穩健
|
|
|
- **發展中 (8-11 分)**:滿足大部分要求,存在小問題
|
|
|
- **初步 (4-7 分)**:滿足部分要求,但需要重大改進
|
|
|
|
|
|
## 其他學習資源
|
|
|
|
|
|
- [MDN 遊戲開發指南](https://developer.mozilla.org/en-US/docs/Games)
|
|
|
- [JavaScript 遊戲開發教程](https://developer.mozilla.org/en-US/docs/Games/Tutorials)
|
|
|
- [Canvas API 文檔](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API)
|
|
|
- [遊戲設計原則](https://www.gamasutra.com/blogs/)
|
|
|
|
|
|
> 💡 **專業提示**:從簡單開始,逐步添加功能。一個精心打磨的簡單遊戲比一個有漏洞的複雜遊戲更好!
|
|
|
|
|
|
---
|
|
|
|
|
|
**免責聲明**:
|
|
|
本文件已使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。儘管我們努力確保翻譯的準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵信息,建議使用專業人工翻譯。我們對因使用此翻譯而產生的任何誤解或誤釋不承擔責任。 |