1. 首页
  2. 排名
  1. 登录
  2. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文

王书瀚

UID: 475, 注册于 2025-2-23 9:02:15, 最后登录于 2026-4-2 13:32:47, 最后活动于 2026-3-25 12:10:27.

解决了 199 道题目,RP: 178.36 (No. 190)

♀
  • 个人简介

    #include #include #include #include <windows.h> // 仅用于睡眠效果,跨平台可删除

    using namespace std;

    // 角色结构体(玩家 / BOSS 共用) struct Fighter { string name; // 名字 int hp; // 生命值 int attack; // 基础攻击 int defend; // 防御 };

    // 函数声明 void showStatus(Fighter player, Fighter boss); // 显示状态 void playerAttack(Fighter &player, Fighter &boss); // 玩家攻击 void bossAttack(Fighter &boss, Fighter &player); // BOSS攻击 bool isGameOver(Fighter player, Fighter boss); // 判断游戏结束

    int main() { // 设置随机数种子 srand((unsigned)time(NULL));

    // 初始化角色
    Fighter player = {"勇士", 150, 25, 8};   // 玩家
    Fighter boss = {"擂台霸主", 200, 30, 5}; // BOSS
    
    cout << "===== 欢迎来到 C++ 擂台游戏 =====" << endl;
    cout << "玩家:" << player.name << " VS 对手:" << boss.name << endl;
    cout << "战斗开始!\n" << endl;
    Sleep(1000);
    
    // 战斗循环
    while (true) {
        showStatus(player, boss);
    
        // 玩家回合
        cout << "\n【你的回合】" << endl;
        cout << "1. 普通攻击   2. 强力技能   3. 回血" << endl;
        cout << "请选择操作:";
        int choice;
        cin >> choice;
        playerAttack(player, boss);
    
        // 判断是否胜利
        if (isGameOver(player, boss)) {
            cout << "\n🎉 恭喜你击败了擂台霸主!你胜利了!" << endl;
            break;
        }
    
        Sleep(800);
        // BOSS 回合
        cout << "\n【" << boss.name << " 的回合】" << endl;
        bossAttack(boss, player);
    
        // 判断是否失败
        if (isGameOver(player, boss)) {
            cout << "\n💀 你被击败了...游戏结束" << endl;
            break;
        }
        Sleep(800);
    }
    
    system("pause");
    return 0;
    

    }

    // 显示双方状态 void showStatus(Fighter player, Fighter boss) { cout << "\n----------------------------------------" << endl; cout << player.name << " 血量:" << player.hp << " 攻击:" << player.attack << endl; cout << boss.name << " 血量:" << boss.hp << " 攻击:" << boss.attack << endl; cout << "----------------------------------------" << endl; }

    // 玩家攻击逻辑 void playerAttack(Fighter &player, Fighter &boss) { int damage = 0; int choice; cin >> choice;

    switch (choice) {
        case 1:
            // 普通攻击:基础伤害 ± 随机值
            damage = player.attack + rand() % 10 - 3;
            damage = max(damage, 5); // 最低伤害5
            boss.hp -= damage;
            cout << "💥 你发动普通攻击,造成 " << damage << " 点伤害!" << endl;
            break;
        case 2:
            // 强力技能:高伤害,但有最小伤害保障
            damage = player.attack * 1.5 + rand() % 15;
            boss.hp -= damage;
            cout << "⚡ 你使用强力技能,造成 " << damage << " 点伤害!" << endl;
            break;
        case 3:
            // 回血技能
            int heal = 30 + rand() % 20;
            player.hp += heal;
            cout << "❤️ 你使用回血,恢复了 " << heal << " 点生命值!" << endl;
            break;
        default:
            cout << "⚠️ 输入错误,默认普通攻击" << endl;
            damage = player.attack;
            boss.hp -= damage;
            cout << "💥 造成 " << damage << " 点伤害!" << endl;
    }
    
    // 血量不能为负
    if (boss.hp < 0) boss.hp = 0;
    

    }

    // BOSS 攻击逻辑 void bossAttack(Fighter &boss, Fighter &player) { // BOSS 随机攻击/技能 int type = rand() % 3; int damage = 0;

    if (type == 0) {
        damage = boss.attack + rand() % 8 - 2;
        damage = max(damage, 8);
        player.hp -= damage;
        cout << "💥 " << boss.name << " 普通攻击,造成 " << damage << " 点伤害!" << endl;
    } else {
        damage = boss.attack * 1.3 + rand() % 12;
        player.hp -= damage;
        cout << "⚡ " << boss.name << " 使用技能,造成 " << damage << " 点伤害!" << endl;
    }
    
    if (player.hp < 0) player.hp = 0;
    

    }

    // 判断游戏结束 bool isGameOver(Fighter player, Fighter boss) { return player.hp <= 0 || boss.hp <= 0; }

  • 最近活动

    • L1-30班计数排序作业 作业
    • L1-30班排序算法作业 作业
    • L1-30班插入排序作业 作业
    • GESP一级模拟赛编程题 IOI
    • GESP一级模拟赛选择题 OI
    • L1-30班一维数组的基本操作作业 作业
    • L1-30班布尔数组课堂练习 作业
    • L1-30班布尔数组作业 作业
    • GESP-10班2025.12真题测试-大题 IOI
    • GESP-10班2025.12真题测试-选择题 OI
    • GESP-10班2025.9真题测试-大题 IOI
    • GESP-10班2025.9真题测试-选择题 OI
    • GESP一级10班2025.6编程大题 IOI
    • GESP一级10班2025.6选择题 OI
    • GESP一级10班编程大题 IOI
    • GESP一级10班真题选择题测试 OI
    • GESP-10班集训题单 作业
    • L1-30班一维数组作业 作业
    • L1-30班循环测试补题 作业
    • L1-30班循环阶段测试 IOI
    • L1-30班循环综合课堂练习 作业
    • L1-30班循环综合练习作业 作业
    • L1-30班质数专题课堂练习 作业
    • L1-30班质数专题作业 作业
    • L1-30班循环嵌套作业 作业
    • L1-30班do…while循环作业 作业
    • 2026年南昌斯坦星球 1 月月赛-L1语法阶段 IOI
    • L1-30班while循环作业 作业
    • L1-30班for循环应用作业 作业
    • L1-30班for循环作业 作业
    • L1-30班分支结构订正 作业
    • L1-30班分支结构编程题 IOI
    • L1-30班分支结构选择题 OI
    • L1-30班switch作业 作业
    • 2025年南昌斯坦星球 11 月月赛-L2算法阶段 IOI
    • 2025年南昌斯坦星球 11 月月赛-L1语法阶段 IOI
    • L1-30班多分支作业 作业
    • L1-30班流程与分支作业 作业
    • L1-30班关系与逻辑作业 作业
    • L1-30班顺序结构强化2作业 作业
    • L1-30班顺序结构课堂小测 OI
    • L1-30班顺序结构强化作业 作业
    • L1-30班顺序结构课堂练习 作业
    • L1-30班格式化输入输出作业 作业
    • L1-30班数学函数作业 作业
    • L1-30班类型转换作业 作业
    • L1-30班数据类型作业 作业
    • L1-30班变量与输入作业 作业
    • L1-30班计算机原理与输出作业 作业
227
已递交
199
已通过
0
题解被赞
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. 兼容模式
  3. 主题
    1. 亮色
    2. 暗色
  1. Worker 0, 36ms
  2. 赣ICP备2024040173号-1
  3. Powered by Hydro v5.0.0-beta.8 Community
关闭

登录

使用您的 南昌斯坦星球 通用账户

忘记密码或者用户名?