🤠

十字骨头 (Cross Bones) 竞技场指南

之然老师: 各位探险家好!这里是炙热的沙漠入口。在这一关,你不仅要收集金币,还要招募雇佣兵,并保护你的巨型守护者!
这需要策略和代码的完美配合。我们先从了解英雄的状态开始吧!

🔍 第一步:了解你自己 (英雄属性)
hero.health / hero.maxHealth 生命值
health 是你还剩多少血,maxHealth 是你满血是多少。
注意: 它们是只读数字,不能直接修改哦!
# 检查生命值,如果太低就去喝药水 if hero.health < hero.maxHealth / 2: hero.say("我需要医生!")
// 检查生命值,如果太低就去喝药水 if (hero.health < hero.maxHealth / 2) { hero.say("我需要医生!"); }
💡 精灵提示: 时刻关注血量,活着才有输出!
hero.pos 位置坐标
获取英雄当前的坐标 {x, y}
# 获取我的横坐标 (x) myX = hero.pos.x hero.say(myX)
// 获取我的横坐标 (x) float myX = hero.pos.x; hero.say(myX);
hero.gold 财富
查看你的队伍当前有多少金币。这是招募士兵的关键!
# 如果钱够20,就去招募士兵 if hero.gold >= 20: hero.say("我有钱啦!")
// 如果钱够20,就去招募士兵 if (hero.gold >= 20) { hero.say("我有钱啦!"); }
hero.time 游戏时间
世界时间,从0开始计算(秒)。
# 前10秒按兵不动 if hero.time < 10: hero.say("等待时机...")
if (hero.time < 10) { hero.say("等待时机..."); }
🏃 第二步:行动与感知
hero.moveXY(x, y) 移动
让英雄一直走到坐标 (x, y)。到达前不会停止。
# 走到地图中心附近 hero.moveXY(30, 30)
hero.moveXY(30, 30);
hero.findNearestEnemy() / Item() 视觉
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); }
hero.distanceTo(target) 测距
计算你和目标之间的距离(米)。
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); } }
hero.say(message) 说话
大喊一声!20米内都能听见。
hero.say("冲啊!")
hero.say("冲啊!");
⚔️ 第三步:投入战斗
hero.attack(target) 攻击
攻击目标一次。攻击力约为6点。
hero.attack(enemy)
hero.attack(enemy);
hero.shield() 防御
举起盾牌,阻挡50%的伤害。保命神技!
# 如果没有敌人,就防御 if not enemy: hero.shield()
if (!enemy) { hero.shield(); }
hero.powerUp() 充能
强化下一次攻击。冷却时间12秒。
hero.powerUp() hero.attack(enemy)
hero.powerUp(); hero.attack(enemy);
hero.isReady(action) 冷却检查
检查技能是否准备好了。配合 "cleave" (劈斩) 或 "power-up" 使用。
if hero.isReady("power-up"): hero.powerUp()
if (hero.isReady("power-up")) { hero.powerUp(); }
🚩 第四步:响应旗帜 (高级策略)

之然老师说: 在这一关,你的守护者(那个大个子)会用旗帜和你交流!
🟩 绿色旗帜 ("green"):他生命值低于50%,快去帮他!
黑色旗帜 ("black"):敌人太多了,他在求救!

hero.findFlag(color) 找旗
寻找特定颜色的旗帜。颜色可以是 "green", "black", "violet"。
flag = hero.findFlag("green")
auto flag = hero.findFlag("green");
hero.pickUpFlag(flag) 捡旗
移动到旗帜位置并将其移除(表示你收到了信号)。
flag = hero.findFlag("green") if flag: hero.pickUpFlag(flag) # 捡起旗子后,记得去帮守护者!
auto flag = hero.findFlag("green"); if (flag) { hero.pickUpFlag(flag); }
🧠 第五步:逻辑大脑
while-true loop 无限循环
让代码一遍又一遍执行。没有它,英雄动一下就会停下来发呆!
while True: # 你的所有代码都要写在这里面 # 并且要缩进4个空格! hero.say("战斗开始!")
while (true) { // 你的代码写在这里 hero.say("战斗开始!"); }
if / else 条件判断
如果(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. 🧪 药水与守护者

地图上会出现药水瓶。捡起药水不仅能治疗你自己,还能大幅治疗你的巨型守护者

⚠️ 战术警告: 药水很珍贵,不要太早使用,等守护者血量低的时候再去捡,效果最大化!