🗺️ 计算机科学 4
Loading...
🏹 🌲 👾

练习 For 循环:狩猎派对

Hunting Party

你不仅是指挥官,还是战术家!
学会同时指挥整支队伍移动和攻击!

本节课关卡

扣哒世界 · 计算机科学4 · C++ · 第35关

C++ · 本节课关卡

35 · 狩猎派对

先读关卡目标,观察地图,再运用本课知识。

学习路线:读目标 → 看图解 → 写代码 → 运行检查

一、任务:指挥小队

🎯 目标

你要带领一队弓箭手穿越森林。

  • 如果看到敌人 ➡️ 攻击!
  • 如果没有敌人 ➡️ 前进!

🤖 循环的作用

你不需要对每个士兵喊话。

用 for 循环,一次命令所有人!

// 1. 获取所有朋友
auto friends = hero.findFriends();

// 2. 对每一个朋友下令
for(int i=0; i < friends.size(); i++) {
    auto friend = friends[i];
    
    // 这里写指挥逻辑...
}

二、小技巧:保持队形移动

🐌

为了不让队伍走散,我们要让他们慢慢走。

不要直接走到终点,而是一步一步挪动。

坐标加法:
x + 0.35
每次只向右移动 0.35 米。
// 创建一个新的移动目标
auto moveTo = {
    "x": friend.pos.x + 0.35, 
    "y": friend.pos.y
};

// 命令朋友移动
hero.command(friend, "move", moveTo);

三、完整逻辑:狩猎派对

把刚才学到的拼起来!

while(true) {
    auto friends = hero.findFriends();
    
    // 🔄 遍历每一个朋友
    for(int i=0; i < friends.size(); i++) {
        auto friend = friends[i];
        
        // 👀 让朋友自己找敌人
        auto enemy = friend.findNearestEnemy();
        
        if(enemy) {
            // ⚔️ 看到敌人就打
            hero.command(friend, "attack", enemy);
        } 
        else {
            // 🚶 没有敌人就慢慢前进
            auto moveTo = {friend.pos.x + 0.35, friend.pos.y};
            hero.command(friend, "move", moveTo);
        }
    }
}

🎓 恭喜通关!

本关复习了:

  • For 循环:for(int i=0; i
  • 数组访问:friends[i]
  • 指挥命令:hero.command()
  • 字典移动:{x+0.35, y}
🌟

你已经是一个合格的小队长了!
继续前进!

我的知识宝藏 · 一页复习

扣哒世界 · 计算机科学4 · C++ · 第35关

C++ · 知识点图
关键字方法 / 函数字符串数字

一、任务:指挥小队

你要带领一队弓箭手穿越森林。

auto friends = hero.findFriends();

二、小技巧:保持队形移动

为了不让队伍走散,我们要让他们慢慢走。

hero.command(friend, "move", moveTo);

三、完整逻辑:狩猎派对

把刚才学到的拼起来!

auto friends = hero.findFriends();

本节课关卡:35. 狩猎派对