以下是一個使用C++編寫的簡單模擬戰爭游戲的示例代碼:
#include <iostream>
#include <vector>
#include <random>// 聲明一個簡單的戰士類
class Warrior {
public:Warrior(int attackPower) : m_attackPower(attackPower) {}int getAttackPower() {return m_attackPower;}private:int m_attackPower;
};// 模擬戰爭的函數
void simulateWar(int numWarriors) {std::vector<Warrior> warriors;// 創建一支戰士隊伍for (int i = 0; i < numWarriors; ++i) {int attackPower = std::rand() % 10 + 1; // 隨機生成攻擊力warriors.push_back(Warrior(attackPower));}// 模擬戰斗int numAlive = numWarriors;while (numAlive > 1) {for (int i = 0; i < numWarriors; i += 2) {Warrior& warrior1 = warriors[i];Warrior& warrior2 = warriors[i + 1];// 模擬戰斗結果int randomValue = std::rand() % 100 + 1;if (randomValue <= 50) {warrior2 = warrior1; // warrior1 獲勝,復制其攻擊力給 warrior2} else {warrior1 = warrior2; // warrior2 獲勝,復制其攻擊力給 warrior1}// 如果其中一個戰士被擊敗,將其標記為死亡if (warrior1.getAttackPower() <= 0) {numAlive--;}if (warrior2.getAttackPower() <= 0) {numAlive--;}}}// 輸出最后存活的戰士信息for (const Warrior& warrior : warriors) {if (warrior.getAttackPower() > 0) {std::cout << "最后存活的戰士攻擊力為:" << warrior.getAttackPower() << std::endl;}}
}int main() {std::srand(static_cast<unsigned>(time(nullptr)));int numWarriors;std::cout << "請輸入戰士的數量:";std::cin >> numWarriors;simulateWar(numWarriors);return 0;
}
這個示例代碼中,首先我們定義了一個Warrior
類,表示戰士,包含一個攻擊力成員變量。然后定義了一個simulateWar
函數,用于模擬戰斗。在這個函數中,我們使用std::vector
來保存戰士隊伍,并隨機生成每個戰士的攻擊力。然后循環進行戰斗,每次戰斗中,兩個戰士隨機互相攻擊,根據隨機值確定勝利者,并將其攻擊力賦值給失敗者。如果其中一個戰士的攻擊力降為0,表示其被擊敗,將其標記為死亡。最終輸出存活戰士的攻擊力。
在main
函數中,我們通過用戶輸入確定戰士的數量,并調用simulateWar
函數進行戰爭模擬。
請注意,這只是一個簡單的示例代碼,模擬戰斗的規則和邏輯可能不夠復雜和完善。你可以根據自己的需求進行修改和擴展。