🗺️ 计算机科学 4
Loading...
🗝️ 📜 ⚔️

练习字典与综合能力

CodeCombat CS4 Level 30-31

准备好成为军团指挥官了吗?
学会召唤士兵,并指挥他们战斗!

一、召唤与移动 (Summon & Move)

📢

召唤 (Summon):
只要钱够,就招募士兵。
hero.costOf("soldier") 查看价格。

指挥 (Command):
拿到所有士兵的名单 (Array),然后一个个告诉他们去哪。

// 1. 只要钱够,就招募
while (hero.gold > hero.costOf("soldier")) {
    hero.summon("soldier");
}

// 2. 获取所有士兵
auto soldiers = hero.findFriends();
int soldierIndex = 0;

// 3. 遍历并指挥移动
while (soldierIndex < soldiers.size()) {
    auto soldier = soldiers[soldierIndex];
    // 这里的 {50, 40} 是位置字典/结构体
    hero.command(soldier, "move", {50, 40});
    soldierIndex += 1;
}

二、综合战斗 (Combat Strategy)

一边收集金币招募士兵,一边指挥他们攻击敌人!

🔄 循环逻辑:

  1. 找金币 -> 移动去捡
  2. 钱够了 -> 招募士兵
  3. 有敌人 -> 指挥所有士兵攻击
while(true) {
    // 1. 收集金币
    auto coin = hero.findNearest(hero.findItems());
    if(coin) hero.move(coin.pos);
    
    // 2. 招募士兵
    if (hero.gold > hero.costOf("soldier")) {
        hero.summon("soldier");
    }
    
    // 3. 指挥战斗
    auto enemy = hero.findNearest(hero.findEnemies());
    if (enemy) {
        auto soldiers = hero.findFriends();
        int i = 0;
        while(i < soldiers.size()) {
            auto soldier = soldiers[i];
            hero.command(soldier, "attack", enemy);
            i++;
        }
    }
}

📜 指挥官手册

💰 经济系统

hero.gold: 当前金币

hero.costOf("soldier"): 兵种价格

hero.summon("soldier"): 招募

⚔️ 指挥系统

hero.findFriends(): 获取军队列表

hero.command(soldier, "move", pos)

hero.command(soldier, "attack", enemy)

🔑 字典与位置

可以使用 {x, y} 这样的字典/结构体来作为 move 命令的目标。

例如:hero.command(friend, "move", {30, 40});