🛡️

C++ 编程进阶:变量与循环

CodeCombat 第17-25关 核心知识点

👾
enemy1
💎
gem

1. C++ 语法升级

NEW SYNTAX RULES

01

🆕 两个新朋友

1. auto (自动类型):
告诉电脑:“你自己猜猜这个盒子里装的是什么类型的数据”。这让我们定义变量变得很简单!

2. ; (分号):
别忘了!C++里每一句话说完都要加分号,就像句号一样。

// 创建变量的新方法:
auto enemy = "Kratt";

// 还有 while 循环的写法:
while(true) {
    hero.moveRight();
}

🔄 2. 循环与攻击

WHILE LOOPS

02

🚪 破门而入 (第17关)

有些东西需要打很多次才能破(比如门、宝箱)。
这时候 while(true) 循环就派上用场了!
只要代码在 { } 花括号里,它就会一直不停地攻击。

// 恐惧之门解法
int main() {
    while(true) {
        hero.attack("Door");
    }
    return 0;
}

📦 3. 变量 (Variable)

THE STORAGE BOX

03

🏠 存储名字

变量就像一个贴了标签的盒子。
第20关“老对手”里,我们可以把食人魔的名字放进盒子里,这样就不用每次都把名字写一遍了。

enemy1 ⬅️ "Kratt"
// 创建一个叫 enemy1 的变量
auto enemy1 = "Kratt";

// 使用变量来攻击
hero.attack(enemy1);
hero.attack(enemy1);

🔭 4. 寻找敌人

FIND NEAREST ENEMY

04

👀 智能眼镜

如果是无名小卒怎么办?
使用 hero.findNearestNearestEnemy()
这个方法会帮你自动扫描最近的敌人,并把它“抓”住放到你的变量盒子里。

// 1. 找到最近的敌人,存入 enemy1
auto enemy1 = hero.findNearestEnemy();

// 2. 攻击盒子里存的那个敌人
hero.attack(enemy1);
hero.attack(enemy1);

🔄 5. 循环中的变量

VARIABLES IN LOOPS

05

🤖 自动战斗机

在第23关“Kithmaze最终历险”中,我们将变量放在循环内部
这意味着:
1. 每次循环开始,英雄重新看一眼周围。
2. 找到当下的新敌人。
3. 攻击它!

while(true) {
    hero.moveRight();
    // 每次循环都找新的敌人
    auto enemy = hero.findNearestEnemy();
    hero.attack(enemy);
}

🔨 6. 建造与坐标

BUILD XY

06

🚧 封锁道路

在第25关,你需要使用“建造者之锤”。
buildXY("fence", x, y)
x 是横坐标,y 是纵坐标。
把鼠标移动到地图上,就能看到具体的数字坐标啦!

// 在坐标 (36, 34) 建围栏
hero.buildXY("fence", 36, 34);

// 在坐标 (36, 30) 建围栏
hero.buildXY("fence", 36, 30);
🎓

你已经学会了...

auto:自动定义变量
🛑 ;:别忘了分号
📦 变量:存储名字或敌人
🔄 while(true):无限循环
🔭 findNearestEnemy:自动找怪
📍 buildXY:指定坐标建造