這是一個使用 C++ 開發的回合制戰棋遊戲,兩個玩家各自控制一個隊伍,在地圖上進行策略對戰。遊戲包含多種角色類型、障礙物系統和回合制戰鬥機制。
- 雙隊伍對戰系統:兩個玩家各自控制一個隊伍(Team1 和 Team2)
- 多種角色類型:
- Wizard(法師):攻擊範圍為 4×4 正方形
- Knight(騎士):攻擊範圍為十字形(2×1 和 1×2)
- Archer(弓箭手):攻擊範圍為 4×4 正方形
- Tank(坦克):攻擊範圍為 3×3 正方形
- 15×15 地圖系統:提供足夠的戰略空間
- 障礙物系統:
- Supplement(+):恢復生命值
- Plus(*):增強屬性
- 回合制戰鬥:輪流進行攻擊和移動
- 異常處理機制:完善的輸入驗證和錯誤處理
project_group32/
├── main.cpp # 主程序入口
├── character.h/cpp # 角色類別定義與實作
├── Team.h/cpp # 隊伍類別定義與實作
├── map.h/cpp # 地圖類別定義與實作
├── Obstacle.h/cpp # 障礙物類別定義與實作
├── exception.h/cpp # 異常處理類別
├── message.h/cpp # 訊息顯示功能
├── game.exe # 編譯後的可執行檔
└── sources/ # 專案相關資源
├── demo_abstract_group32.txt
├── demo_screenshot_group32.jpg
├── demo_slides_group32.pdf
└── demo_video_group32.mp4
使用支援 C++ 的編譯器(如 g++)編譯:
cd project_group32
g++ -o game main.cpp character.cpp Team.cpp map.cpp Obstacle.cpp exception.cpp message.cpp./game或直接執行已編譯的執行檔:
./game.exe-
隊伍設置:
- 每個隊伍最多 3 個角色
- 每種角色類型最多可以添加 2 次
- 角色必須放置在有效位置(地圖邊緣,避開中央區域)
-
角色放置限制:
- 座標範圍:0-14
- 不能放置在中央區域(3-11, 3-11)
- 兩個隊伍的角色不能重疊
-
遊戲流程:
- Team1 先手,輪流進行回合
- 每個角色可以:
- 選擇攻擊敵方角色
- 移動到新位置
- 檢查並觸發障礙物效果
- 當一方隊伍所有成員生命值歸零時,遊戲結束
-
攻擊範圍:
- Wizard:4×4 正方形範圍
- Knight:十字形範圍(上下左右各 2 格)
- Tank:3×3 正方形範圍
- Archer:4×4 正方形範圍
- 基礎屬性:生命值、攻擊力、防禦力、速度
- 位置座標(x, y)
- 攻擊、移動、受傷等核心功能
Wizard1/Wizard2:法師角色Knight1/Knight2:騎士角色Archer1/Archer2:弓箭手角色Tank1/Tank2:坦克角色
- 管理隊伍成員
- 檢查隊伍狀態(是否全員陣亡)
- 15×15 地圖管理
- 角色和障礙物的放置與顯示
- 障礙物效果應用
- 位置管理
- 物件導向設計:使用繼承和多型實現不同角色類型
- 異常處理:自定義異常類別處理各種錯誤情況
- STL 容器:使用
vector、map等標準容器 - 輸入驗證:完善的用戶輸入檢查機制
Group 32
- 詳細報告請參閱
report_group32.pdf - 演示資源位於
project_group32/sources/目錄
本專案為課程作業專案。