🔍 第一步:了解你自己 (英雄属性)
health 是你还剩多少血,maxHealth 是你满血是多少。
注意: 它们是只读数字,不能直接修改哦!
# 检查生命值,如果太低就去喝药水
if hero.health < hero.maxHealth / 2:
hero.say("我需要医生!")
// 检查生命值,如果太低就去喝药水
if (hero.health < hero.maxHealth / 2) {
hero.say("我需要医生!");
}
💡 精灵提示: 时刻关注血量,活着才有输出!
获取英雄当前的坐标 {x, y}。
# 获取我的横坐标 (x)
myX = hero.pos.x
hero.say(myX)
// 获取我的横坐标 (x)
float myX = hero.pos.x;
hero.say(myX);
查看你的队伍当前有多少金币。这是招募士兵的关键!
# 如果钱够20,就去招募士兵
if hero.gold >= 20:
hero.say("我有钱啦!")
// 如果钱够20,就去招募士兵
if (hero.gold >= 20) {
hero.say("我有钱啦!");
}
世界时间,从0开始计算(秒)。
# 前10秒按兵不动
if hero.time < 10:
hero.say("等待时机...")
if (hero.time < 10) {
hero.say("等待时机...");
}
🏃 第二步:行动与感知
让英雄一直走到坐标 (x, y)。到达前不会停止。
# 走到地图中心附近
hero.moveXY(30, 30)
hero.moveXY(30, 30);
findNearestEnemy() 找最近的敌人。
findNearestItem() 找最近的物品(如金币、药水)。
如果没找到,会返回 null。
item = hero.findNearestItem()
if item:
# 这里的 item.pos.x 是物品的坐标
hero.moveXY(item.pos.x, item.pos.y)
auto item = hero.findNearestItem();
if (item) {
hero.moveXY(item->pos.x, item->pos.y);
}
计算你和目标之间的距离(米)。
enemy = hero.findNearestEnemy()
if enemy:
if hero.distanceTo(enemy) < 10:
hero.attack(enemy)
auto enemy = hero.findNearestEnemy();
if (enemy) {
if (hero.distanceTo(enemy) < 10) {
hero.attack(enemy);
}
}
大喊一声!20米内都能听见。
hero.say("冲啊!")
hero.say("冲啊!");
⚔️ 第三步:投入战斗
攻击目标一次。攻击力约为6点。
hero.attack(enemy)
hero.attack(enemy);
举起盾牌,阻挡50%的伤害。保命神技!
# 如果没有敌人,就防御
if not enemy:
hero.shield()
if (!enemy) {
hero.shield();
}
强化下一次攻击。冷却时间12秒。
hero.powerUp()
hero.attack(enemy)
hero.powerUp();
hero.attack(enemy);
检查技能是否准备好了。配合 "cleave" (劈斩) 或 "power-up" 使用。
if hero.isReady("power-up"):
hero.powerUp()
if (hero.isReady("power-up")) {
hero.powerUp();
}
🚩 第四步:响应旗帜 (高级策略)
之然老师说: 在这一关,你的守护者(那个大个子)会用旗帜和你交流!
🟩 绿色旗帜 ("green"):他生命值低于50%,快去帮他!
⬛ 黑色旗帜 ("black"):敌人太多了,他在求救!
寻找特定颜色的旗帜。颜色可以是 "green", "black", "violet"。
flag = hero.findFlag("green")
auto flag = hero.findFlag("green");
移动到旗帜位置并将其移除(表示你收到了信号)。
flag = hero.findFlag("green")
if flag:
hero.pickUpFlag(flag)
# 捡起旗子后,记得去帮守护者!
auto flag = hero.findFlag("green");
if (flag) {
hero.pickUpFlag(flag);
}
🧠 第五步:逻辑大脑
让代码一遍又一遍执行。没有它,英雄动一下就会停下来发呆!
while True:
# 你的所有代码都要写在这里面
# 并且要缩进4个空格!
hero.say("战斗开始!")
while (true) {
// 你的代码写在这里
hero.say("战斗开始!");
}
如果(if)条件成立,做这件事;否则(else),做那件事。
enemy = hero.findNearestEnemy()
if enemy:
hero.attack(enemy)
else:
hero.moveXY(30, 30)
auto enemy = hero.findNearestEnemy();
if (enemy) {
hero.attack(enemy);
} else {
hero.moveXY(30, 30);
}
🏆 第六步:十字骨头 规则与数据
1. ⛺ 招募你的军队
看到那些帐篷前的 X 标记了吗?只要让英雄踩上去,如果有足够的金币,就能召唤雇佣兵!
人类方 (Human)
| 兵种 |
花费 💰 |
特点 |
| Soldier (士兵) |
20 |
近战肉盾 |
| Archer (弓箭手) |
25 |
远程输出 |
食人魔方 (Ogre)
| 兵种 |
花费 💰 |
特点 |
| Scout (侦察兵) |
30 (2个) |
速度快 |
| Thrower (投矛手) |
20 (2个) |
远程骚扰 |
2. 🧪 药水与守护者
地图上会出现药水瓶。捡起药水不仅能治疗你自己,还能大幅治疗你的巨型守护者!
⚠️ 战术警告: 药水很珍贵,不要太早使用,等守护者血量低的时候再去捡,效果最大化!