C++ 攻防推演模拟器:计算部队伤害和损失
以下是一个运行 C++ 程序的示例代码,可以进行攻防推演的运算:\n\ncpp\n#include \"iostream\"\n#include \"map\"\n\nusing namespace std;\n\nstruct Unit {\n int attack;\n int health;\n};\n\nint main() {\n // 定义部队的攻击和生命值\n map<char, Unit> units = {\n {'a', {7, 19}},\n {'b', {3, 11}},\n {'c', {8, 27}}\n };\n\n // 输入双方的阵营和部队代码以及部队数量\n char camp1, camp2;\n int num1, num2;\n cout << \"请输入阵营1:\";\n cin >> camp1;\n cout << \"请输入阵营2:\";\n cin >> camp2;\n cout << \"请输入阵营1的部队数量:\";\n cin >> num1;\n cout << \"请输入阵营2的部队数量:\";\n cin >> num2;\n\n // 计算战斗时长\n int battleTime;\n cout << \"请输入战斗时长(小时):\";\n cin >> battleTime;\n\n // 计算双方部队所打出和收到的伤害\n int damage1 = 0, damage2 = 0;\n for (int i = 0; i < battleTime; i++) {\n damage1 += units[camp1].attack * num1;\n damage2 += units[camp2].attack * num2;\n }\n\n // 输出结果\n cout << \"阵营1的部队打出的伤害为:\" << damage1 << endl;\n cout << \"阵营2的部队打出的伤害为:\" << damage2 << endl;\n\n // 找出敌方最高防御部队的生命值\n int maxHealth = max(units[camp1].health, units[camp2].health);\n\n // 计算双方部队所收到的伤害\n int damageReceived1 = damage2 * num1 / maxHealth;\n int damageReceived2 = damage1 * num2 / maxHealth;\n\n // 输出结果\n cout << \"阵营1的部队收到的伤害为:\" << damageReceived1 << endl;\n cout << \"阵营2的部队收到的伤害为:\" << damageReceived2 << endl;\n\n return 0;\n}\n\n\n你可以将上述代码保存为一个 cpp 文件,例如 battle.cpp,然后使用 C++ 编译器进行编译和运行。运行程序后,按照提示输入阵营和部队相关信息,即可得到双方部队所打出和收到的伤害。
原文地址: https://www.cveoy.top/t/topic/pzVi 著作权归作者所有。请勿转载和采集!