Codecombat 游戏攻略(计算机科学三)2
第33关 逻辑之路
判断secretB 非真,走上面;否则,走下面(这里面要先自己进行逻辑判断)
if…else语句
或者这样用(不用自己进行判断)
// 如果 secretB 非真,走上面;否则,走下面。
var secretE = !secretB;
if (secretE) {
hero.moveXY(44, 33);
} else {
hero.moveXY(44, 15);
}
// 从巫师那得到两个秘密的true/false值。
// 查看提示,可以了解如何编写逻辑表达式。
hero.moveXY(14, 24);
var secretA = hero.findNearestFriend().getSecretA();
var secretB = hero.findNearestFriend().getSecretB();
// 如果 secretA 和 secretB 都为真,走上面的路;否则,走下面。
var secretC = secretA && secretB;
if (secretC) {
hero.moveXY(20, 33);
} else {
hero.moveXY(20, 15);
}
hero.moveXY(26, 24);
// 如果 secretA 或 secretB 有一个为真,走上面;否则,走下面。
if (secretA || secretB) {
hero.moveXY(32, 33);
} else {
hero.moveXY(32, 15);
}
hero.moveXY(38, 24);
// 如果 secretB 非真,走上面;否则,走下面。
if (secretB) {
hero.moveXY(44, 15);
} else {
hero.moveXY(44, 33);
}
hero.moveXY(50, 24);
第三十四关 逻辑之圈
注意逻辑判断
// 移动到巫师旁,获得他的秘密值。
hero.moveXY(20, 24);
var secretA = hero.findNearestFriend().getSecretA();
var secretB = hero.findNearestFriend().getSecretB();
var secretC = hero.findNearestFriend().getSecretC();
// 如果所有三个值都为真,则走上面。
// 否则,往下走。保存第四个值。
var secretD = secretA && secretB && secretC;
if (secretD) {
hero.moveXY(30, 33);
} else {
hero.moveXY(30, 15);
}
// 如果三个值中的任何一个为真,则往左走。
// 否则,向右走。保存第五个值。
if (secretA || secretB || secretC) {
hero.moveXY(20, 24);
} else {
hero.moveXY(40, 24);
}
// 如果所有五个值都为真,则走上面。
// 否则,走下面。
if (secretA && secretB && secretC) {
hero.moveXY(30, 33);
} else {
hero.moveXY(30, 15);
}
第三十五关 逻辑结论
运算符优先级
或与非优先于and
// 移动到 'Eszter' 身边,从她那得到三个秘密值。
hero.moveXY(24, 16);
var secretA = hero.findNearestFriend().getSecretA();
var secretB = hero.findNearestFriend().getSecretB();
var secretC = hero.findNearestFriend().getSecretC();
// 如果A AND B为真,或者如果C为真,对'Tamas'说"TRUE"。否则说"FALSE"
// 记得用括号让逻辑顺序正确。
var tam = secretA && secretB || secretC;
hero.moveXY(19, 26);
hero.say(tam);
// 如果A OR B为真,且如果C为真,对'Zsofi'说"TRUE"。否则说"FALSE"
hero.moveXY(26, 36);
if (secretA || secretB && secretC) {
hero.say("true");
} else {
hero.say("false");
}
// 如果A OR C为真,且如果B OR C为真,对'Istvan'说"TRUE"。否则说"FALSE"
hero.moveXY(37, 34);
if (secretA || secretC && secretB || secretC) {
hero.say("true");
} else {
hero.say("false");
}
// 如果A AND B为真,或者如果B为真且C为非真,对'Csilla'说"TRUE"。否则说"FALSE"
hero.moveXY(40, 22);
if (secretA && secretB || secretB && secretC) {
hero.say("true");
} else {
hero.say("false");
}
挑战或与非
使用while循环
先检查是否有enemy或是item,再进行判断;
// 只在`type`是"potion"或"lightstone"的情况下收集物品。
// 如果敌人类型`type`不是"burl",且距离小于15米,则攻击敌人。
while (true) {
var item = hero.findNearestItem();
if (item) {
if (item.type == "potion" || item.type == "lightstone") {
hero.moveXY(item.pos.x, item.pos.y);
}
}
var enemy = hero.findNearestEnemy();
var distance = hero.distanceTo(enemy);
if (enemy) {
if (enemy.type != "burl" && distance < 15) {
hero.attack(enemy);
}
}
}
第三十六关 强壮的沙牦牛
为变量赋值
-= 赋值运算符
// 当牦牛靠近时,向右移动10米来躲避。
// 躲避4头牦牛来通过此关。
while (true) {
// 获取英雄当前位置的x和y坐标。
var x = hero.pos.x;
var y = hero.pos.y;
// 找到最近的耗牛。
var yak = hero.findNearestEnemy();
// 如果到牦牛的距离小于10:
if (hero.distanceTo(yak) < 10) {
// 向右移动,在英雄位置的x坐标值基础上加10。
x += 10;
// 使用moveXY(x, y)来移动!
hero.moveXY(x, y);
}
}
第三十七关 绿洲
-=赋值运算符
// 向右移动以到达绿洲,
// 向左移动以避免附近的牦牛。
while (true) {
var x = hero.pos.x;
var y = hero.pos.y;
var enemy = hero.findNearestEnemy();
if (enemy && hero.distanceTo(enemy) < 10) {
// 用x减10来向左移动。
x -= 10;
// 使用moveXY移动到新的x,y位置。
hero.moveXY(x, y);
} else {
// 用x加10来向右移动。
x += 10;
// 使用moveXY移动到新的x,y位置。
hero.moveXY(x, y);
}
}
第三十八关 SARVEN路
+= 赋值运算符
// 朝绿洲前进。小心新的敌人:食人魔侦察兵!
// 通过增加当前的x和y坐标值来向右上移动。
while (true) {
// 如果有敌人,则攻击。
var enemy = hero.findNearestEnemy();
if (enemy) {
hero.attack(enemy);
} // 否则,继续向右上移动。
else {
var x = hero.pos.x;
var y = hero.pos.y;
x += 10;
y += 10;
hero.moveXY(x, y);
}
}
挑战 干燥灌溉
// 沿斜线,向左移动6米,向上移动4米。
// 击败你发现的敌人,然后再次移动。
while (true) {
var x = hero.pos.x;
var y = hero.pos.y;
var enemy = hero.findNearestEnemy();
x -= 6;
y += 4;
hero.moveXY(x, y);
if (enemy) {
hero.attack(enemy);
}
}
第三十九关 SARVEN间隙
赋值给变量也可以,直接写也可以hero.pos.y;
// 每次向下移动10米,朝绿洲移动。
// 在每个食人魔左边20米的位置建造围栏。
while (true) {
var enemy = hero.findNearestEnemy();
if (enemy) {
// 在敌人左边20个单位处使用buildXY建造一段"fence"
var x = enemy.pos.x;
var y = enemy.pos.y;
x -= 20;
hero.buildXY("fence", x, y);
} else {
// 向下使用moveXY移动10米。
var a = hero.pos.y;
a -= 10;
hero.moveXY(hero.pos.x, a);
}
}
第四十关 十字路口
// 使用 "fire-trap"打败食人魔。
while (true) {
var enemy = hero.findNearestEnemy();
if (enemy) {
// 如果敌人在英雄的左侧:
if (enemy.pos.x < hero.pos.x) {
// 在左侧X处使用buildXY建造一个"fire-trap"。
hero.buildXY("fire-trap", 25, 34); // 如果敌人在英雄的右侧:
} else if (enemy.pos.x > hero.pos.x) {
// 在右侧X处使用buildXY建造一个"fire-trap"。
hero.buildXY("fire-trap", 55, 34); // 如果敌人在英雄下面。
} else if (enemy.pos.y < hero.pos.y) {
// 在下面的X处使用buildXY建造一个"fire-trap"。
hero.buildXY("fire-trap", 40, 19); // 如果敌人在英雄上面。
} else if (enemy.pos.y > hero.pos.y) {
// 在上面的X处使用buildXY建造一个"fire-trap"。
hero.buildXY("fire-trap", 40, 49);
}
}
// 移动回中心。
hero.moveXY(40, 34);
}
第四十一关 截断
// 站在农民和塔之间。
while (true) {
var enemy = hero.findNearestEnemy();
var friend = hero.findNearestFriend();
// 通过将friend.pos.x和enemy.pos.x相加来计算x
// 然后除以2。
// 如需更多帮助,请查看指南!
var aa = (enemy.pos.x + friend.pos.x) / 2;
// 现在对y做同样的事情
var bb = (friend.pos.y + enemy.pos.y) / 2;
// 移动到计算得到的X和Y坐标。
hero.moveXY(aa, bb);
}
第四十二关 雷蹄
if/else语句
// 向右朝绿洲移动。
// 看到牦牛时,在上方或是下方建造一段"fence"
while (true) {
var yak = hero.findNearestEnemy();
if (yak) {
// 如果yak.pos.y大于hero.pos.y
if (yak.pos.y > hero.pos.y) {
// 使用buildXY在牦牛下方10米处建造一段"fence"
hero.buildXY("fence", yak.pos.x, yak.pos.y - 10);
} // 否则:
else {
// 使用buildXY在牦牛上方10米处建造一段"fence"
hero.buildXY("fence", yak.pos.x, yak.pos.y + 10);
}
}
// 使用moveXY向右朝绿洲移动10米。
hero.moveXY(hero.pos.x + 10, hero.pos.y);
}
第四十三关 KITHGARD附魔师
函数声明和调用
// 定义你自己的简单移动函数。
// 定义moveRight
// 注意:每个函数都应该让英雄移动12米!
function moveRight() {
var x = hero.pos.x + 12;
var y = hero.pos.y;
hero.moveXY(x, y);
}
// 定义moveDown
function moveDown() {
var a = hero.pos.x;
var b = hero.pos.y - 12;
hero.moveXY(a, b);
}
// 定义moveUp
function moveUp() {
var c = hero.pos.x;
var d = hero.pos.y + 12;
hero.moveXY(c, d);
}
// 现在,使用这些函数!
moveRight();
moveDown();
moveUp();
moveUp();
moveRight();
第四十四关 扫雷
if…else if语句
// 带领农民和医生穿越雷区。
while (true) {
var coin = hero.findNearestItem();
var healingThreshold = hero.maxHealth / 2;
// 检查你是否身受重伤。
if (hero.health < healingThreshold) {
// 向左移动10米。
hero.moveXY(hero.pos.x - 10, hero.pos.y);
// 请求治疗。
hero.say("Can I get a heal?"); // 否则,移动到下一枚硬币。
} else if (coin) {
hero.moveXY(coin.pos.x, coin.pos.y);
}
}
第四十五关 KILLDEER操作
if条件语句调用函数做判断
// 诱使食人魔陷入陷阱。 这些食人魔很谨慎。
// 只有英雄受伤时,他们才会追击。
// 该函数检查英雄的生命值
// 并返回一个布尔值。
function shouldRun() {
if (hero.health < hero.maxHealth / 2) {
return true;
} else {
return false;
}
}
while (true) {
// 只有当shouldRun()返回True时才移动到X. true
if (shouldRun()) {
hero.moveXY(75, 37);
} // 否则,攻击!
else {
var enemy = hero.findNearestEnemy();
hero.attack(enemy);
}
}
第46关 医疗护理
if…else if语句
// 当你的生命值少于一半时,请求治疗师的帮助。 while(true) {
var currentHealth = hero.health;
var healingThreshold = hero.maxHealth / 2;
// 如果你当前的生命值低于界限值,
// 转移到治疗点并说, "heal me".
// 否则的话,攻击。你需要奋战!
if(currentHealth < healingThreshold) {
hero.moveXY(65, 46);
hero.say("heal me");
}else if(enemy){
var enemy = hero.findNearestEnemy();
hero.attack(enemy);}
}
第47 守时
这关非常奇怪,我觉得已经运行成功了可是一提交又说我错了;
而且对的答案放在上面也是不对,费解
if…else if … else语句
// 使用你的新技能来选择你要做什么: hero.time
while (true) {
// 如果是前十秒,攻击。
if (hero.time < 10) {
var aa = hero.findNearestEnemy();
if (aa) {
hero.attack(aa);
}
} // 否则,如果是前35秒,收集硬币。
else if (hero.time < 35) {
var coin = hero.findNearestItem();
if (coin) {
hero.moveXY(coin.pos.x, coin.pos.y);
}
} // 35秒后,再次发起攻击!
else {
var bb = hero.findNearestEnemy();
if (bb) {
hero.attack(bb);
if (hero.health < hero.maxHealth / 2) {
hero.moveXY(16, 12);
}
}
}
}
第四十八关 沙漠十字
if…else语句
逻辑运算符
// 弄清食人魔来自哪个方向。
while (true) {
var enemy = hero.findNearestEnemy();
if (enemy) {
// 左边:enemy.pos.x小于hero.pos.x
var isLeft = hero.pos.x > enemy.pos.x;
// 上方:enemy.pos.y大于hero.pos.y
var isAbove = hero.pos.y < enemy.pos.y;
// 右边:enemy.pos.x大于hero.pos.x
var isRight = hero.pos.x < enemy.pos.x;
// 下方:enemy.pos.y小于hero.pos.y
var isBelow = hero.pos.y > enemy.pos.y;
// 如果敌人在上方 (isAbove) 且 在左边 (isLeft):
// 使用buildXY()在X标记处建造一个"fire-trap"。
if (isLeft && isAbove) {
hero.buildXY("fire-trap", 20, 51);
}
// 如果敌人在上方 (isAbove) 且 在右边 (isRight):
// 使用buildXY()在X标记处建造一个"fire-trap"。
if (isAbove && isRight) {
hero.buildXY("fire-trap", 60, 51);
}
// 如果敌人在下方 (isBelow) 且 在左边 (isLeft):
// 使用buildXY()在X标记处建造一个"fire-trap"。
if (isBelow && isLeft) {
hero.buildXY("fire-trap", 20, 17);
}
// 如果敌人在下方 (isBelow) 且 在右边 (isRight):
// 使用buildXY()在X标记处建造一个"fire-trap"。
if (isBelow && isRight) {
hero.buildXY("fire-trap", 60, 17);
}
hero.moveXY(40, 34);
} else {
hero.moveXY(40, 34);
}
}
第四十九关 囤积黄金
break语句
// 收集25金,然后告诉 Naria 总数。
// 当totalGold >= 25,使用 break 来停止收集。
var totalGold = 0;
while (true) {
var coin = hero.findNearestItem();
if (coin) {
// 捡起硬币。
hero.moveXY(coin.pos.x, coin.pos.y);
// 将硬币的价值加到totalGold。
// 使用以下方法得到它的价值:: coin.value
totalGold += coin.value;
}
if (totalGold >= 25) {
// 这会中断跳出循环并执行循环下面的语句。
// 循环结束后,运行循环后的代码。
break;
}
}
// 完成收集黄金!
hero.moveXY(58, 33);
// 去告诉 Naria 你收集了多少黄金。
hero.say(totalGold);
第五十关 诱饵演习
>= 运算符
// 我们在测试一个新的建造类型:诱饵(decoy)。
// 建造4个诱饵,然后汇报总数给Naria。
var decoysBuilt = 0;
while (true) {
var coin = hero.findNearestItem();
if (coin) {
// 收集硬币!
hero.moveXY(coin.pos.x, coin.pos.y);
}
// 每个诱饵消费25金。
// 如果hero.gold大于或等于25:
if (hero.gold >= 25) {
// 用buildXY建造一个"decoy"
hero.buildXY("decoy", hero.pos.x, hero.pos.y);
// 为decoysBuilt计数值加1。
// decoysBuilt = decoysBuilt + 1;
decoysBuilt += 1;
}
if (decoysBuilt == 4) {
// 建造了4个诱饵后跳出循环。
break;
}
}
hero.say("完成诱饵建造!");
hero.moveXY(14, 36);
// 说出你建造了多少诱饵。
hero.say(decoysBuilt);
第五十一关 炼金术传承
continue语句;会回到循环的开头
// 和食人魔矮人抢Omarn Brewstone提取出的水!
// 使用`continue`语句避开毒药。
while (true) {
var enemy = hero.findNearestEnemy();
var item = hero.findNearestItem();
// 如果没有敌人,使用continue跳出此轮循环继续运行。
if (!enemy) {
continue;
}
// 如果没有物品,要一瓶药水,然后continue。
if (!item) {
hero.say("给我点喝的!");
continue;
}
// 如果item.type是"poison",使用continue跳出此轮循环继续运行。
if (item.type == "poison") {
// 此时,药水一定是一瓶水
// 使用moveXY移到药水,然后回到起点!
continue;
}
hero.moveXY(item.pos.x, item.pos.y);
hero.moveXY(34, 47);
}
第五十二关 快速赛跑
事件处理器使用函数
代码原本应该是从上到下依次运行的;这样就可以改变原来的顺序,同步运行
// 使用事件处理器,这样宠物和英雄都会跑起来!
function petMove() {
pet.moveXY(50, 21);
}
// 使用pet.on("spawn", petMove)替换petMove()
// 这样你的英雄和宠物就会同时跑起来。
// ΔpetMove()把这个用pet.on("spawn", petMove)替换
pet.on("spawn", petMove);
hero.moveXY(50, 12);
第五十三关 沙漠蘑菇
事件选择器处理函数
代码原本应该是从上到下依次运行的;这样就可以改变原来的顺序,同步运行
// 收集9个蘑菇。
// 这个函数让宠物给你取回药水。
function onSpawn(event) {
while (true) {
// 宠物可以根据类型找到最近的物品。
var potion = pet.findNearestByType("potion");
// 如果存在药水则让宠物取回:
if (potion) {
pet.fetch(potion);
}
}
}
pet.on("spawn", onSpawn);
// 蘑菇有毒,不要太快收集。
while (true) {
var someItem = hero.findNearestItem();
if (someItem && hero.health > hero.maxHealth / 3) {
// 收集someItem:
hero.moveXY(someItem.pos.x, someItem.pos.y);
}
}
第五十四关 蘑菇之声
事件选择器处理函数
if…else语句
while循环循环调用函数
// 打败骷髅并打开宝箱。
function onSpawn(event) {
// 宠物要找到生命药水(类型是 "potion"):
var potion = pet.findNearestByType("potion");
// 并将它取回:
if (potion) {
pet.fetch(potion);
}
// 宠物要找到金钥匙(类型是"gold-key"):
var key = pet.findNearestByType("gold-key");
// 并将它取回:
if (key) {
pet.fetch(key);
}
}
// 宠物可以发现的不仅仅是物品:
var skeleton = pet.findNearestByType("skeleton");
pet.on("spawn", onSpawn);
while (true) {
if (skeleton.health > 0) {
hero.attack(skeleton);
} else {
hero.moveXY(31, 38);
}
}
第五十五关 钥匙陷阱
运算符优先级
if…else语句
while循环循环调用函数
事件选择器处理函数
// 获得三把钥匙并释放圣骑士。 function onSpawn(event) {
// 宠物需要找到并拿回3把钥匙。
// 你需要后续类型的物品:
// "bronze-key"、"silver-key"和"gold-key"。
var bronze = pet.findNearestByType("bronze-key");
var silver = pet.findNearestByType("silver-key");
var gold = pet.findNearestByType("gold-key");
pet.fetch(bronze);
pet.fetch(silver);
pet.fetch(gold);
} pet.on("spawn", onSpawn); while(true) {
var enemy = hero.findNearestEnemy();
if (enemy && enemy.team == "ogres") {
hero.attack(enemy);
}
if (hero.health < 300) {
// 你也可以在主线程中使用宠物。
var potion = pet.findNearestByType("potion");
if (potion) {
hero.moveXY(potion.pos.x, potion.pos.y);
}
}
}
第五十六关 命令链
这一关如果你确定你的逻辑正确的话,那么肯定就是移动的点出了问题,
不要完全的相信题目给出的提示。如果设置在33,33 的话,英雄就会看到旁边的人正在烧汤,
就会被吸引过去
站在村外,离爆炸点太近也会被炸死适当的调整一下位置适合很有必要的。
if…else语句
while循环循环调用函数
事件选择器处理函数
// 只有你的宠物可以唤醒巫师。
function onHear(event) {
// "hear"事件设置event.speaker属性。
// 检查宠物是否听到了英雄的话:
if (event.speaker == hero) {
pet.say("WOOF");
}
}
// 为"hear"事件指派事件处理器。
pet.on("hear", onHear);
while (true) {
var enemy = hero.findNearestEnemy();
// 如果有敌人:
if (enemy) {
// 使用hero.say()提醒你的宠物
hero.say("enemy");
// 移动到营地内的X处。
hero.moveXY(30, 25);
// 然后返回营地外的X处。
hero.moveXY(30, 17);
}
}
第五十七关 宠物工程师
if…else语句
while循环循环调用函数
事件选择器参数
// 根据需要将宠物移到左或右按钮。
function onHear(event) {
// 找到门卫
var archer = pet.findNearestByType("archer");
var soldier = pet.findNearestByType("soldier");
// 如果"event.speaker"参数是 `archer`:
if (event.speaker == archer) {
// 移动到左边的按钮。
pet.moveXY(32, 30);
}
// 如果"event.speaker"参数是`soldier`:
if (event.speaker == soldier) {
// 移动到右边的按钮。
pet.moveXY(48, 30);
}
}
pet.on("hear", onHear);
// 您不必更改下面的代码。
// 你的英雄应该保护右下角的通道。
while (true) {
var enemy = hero.findNearestEnemy();
if (enemy) {
hero.attack(enemy);
}
}
第五十八关 宠物翻译家
if…else语句
while循环循环if条件
事件选择器参数
// 你的宠物应该翻译命令。 function onHear(event) {
// 宠物听到的消息在event.message中
var message = event.message;
// 如果消息是 "North":
if (message == "North") {
// 宠物说 "Htron"。
pet.say("Htron");
}
// 如果消息是 "South":
if (message == "South") {
// 宠物说 "Htuos"。
pet.say("Htuos");
}
// 如果消息是 "East":
if(message == "East"){
// 宠物说 "Tsae"。
pet.say("Tsae");}
} // 分配事件处理程序。
pet.on("hear", onHear); while (true) {
var enemy = hero.findNearestEnemy();
// 不要攻击Brawlers。
if (enemy && enemy.type != "brawler") {
hero.attack(enemy);
}
}
第六十关 炼金术传承
事件处理参数
// 等着炼金师的命令去拿药水。 // 宠物事件的事件处理程序 "hear"。
function onHear(event) {
// 找到最近的药水。
var potion = pet.findNearestByType("potion");
var message = event.message;
// 如果事件的消息是 "Fetch"
if(message == "Fetch"){
// 让宠物拿取药水。
pet.fetch(potion);}
// 其他(对于任何其他消息):
else{
// 用pet.moveXY 让宠物回到红色标记。
pet.moveXY(54,34);
}} pet.on("hear", onHear); // 您不必更改下面的代码。
while(true) {
var enemy = hero.findNearest(hero.findEnemies());
if (enemy) {
hero.attack(enemy);
}
else {
hero.moveXY(40, 34);
}
}
第六十一关 危险钥匙
事件(发生的事情)
使用on( 事件 ,函数)方法将函数注册为事件处理函数
事件处理函数会在指定类型的事件发生时运行
// 听圣骑士的,取回正确的钥匙。
function onHear(event) {
// 宠物可以找到圣骑士和钥匙。
var paladinUnit = pet.findNearestByType("paladin");
var goldKey = pet.findNearestByType("gold-key");
var silverKey = pet.findNearestByType("silver-key");
var bronzeKey = pet.findNearestByType("bronze-key");
// 如果event.speaker是paladinUnit:
if (event.speaker == paladinUnit) {
// 如果event.message是"Gold":
if (event.message == "Gild") {
// 宠物需要取金钥匙。
pet.fetch(goldKey);
}
// 如果event.message是 "Silver":
if (event.message == "Silver") {
// 宠物需要取银钥匙。
pet.fetch(silverKey);
}
// 如果event.message是"Bronze":
if (event.message == "Bronze") {
// 宠物需要取青铜钥匙。
pet.fetch(bronzeKey);
}
}
}
pet.on("hear", onHear);
第六十二关 奥林匹克比赛
事件(发生的事情)
使用on( 事件 ,函数)方法将函数注册为事件处理函数
事件处理函数会在指定类型的事件发生时运行
event.message
event.speaker
// 宠物必须赢得比赛。
// 运动员需要触碰队伍标记,然后往回跑。
function onHear(event) {
var referee = pet.findNearestByType("wizard");
// 如果说话的人是裁判员referee并且说的是"Start":
if (event.speaker == referee) {
if (event.message == "Start") {
// 让宠物跑到红色标记。
pet.moveXY(54, 27);
}
// 然后跑回来。
pet.moveXY(6, 27);
}
}
// 指派onHear函数来处理"hear"事件。
pet.on("hear", onHear);
第六十三关 十字骨架
// 欢迎来到十字骨头关卡!
// 攒硬币来招募规模合适的军队。
// 移动到X标记来招募部队。
// 花费30金招募2名侦察兵。
// 花费20金召唤2名投矛手。
// 如果英雄有超过一定数量的黄金,就做点什么吧!
// 捡起药水来治疗守护者和你自己。
// 注意指示特定事件的旗标可能出现。
while (true) {
if (hero.gold >= 45) {
// 如果英雄有超过一定数量的黄金,就做点什么吧!
hero.moveXY(58, 20);
hero.moveXY(58, 16);
} else {
var item = hero.findNearestItem();
// 收集硬币招募单位!
hero.moveXY(item.pos.x, item.pos.y);
}
}
Codecombat 游戏攻略(计算机科学三)2的更多相关文章
- Codecombat 游戏攻略(计算机科学三)
第二关 赋值运算符-=字符串拼串循环语句while // 你可以把字符串连起来,或者把数字连接到字符串. // 一起唱歌,使用字符串连接: // X potions of health on the ...
- Codecombat 游戏攻略——JavaScript编辑语言——关卡(计算机科学四)Ⅱ
第16关:潜伏 // 用findEnemies把敌人存在数组enemies中 // 只攻击萨满巫师,不要攻击牦牛! var enemies = hero.findEnemies(); var enem ...
- 2048 Puzzle游戏攻略
2048 Puzzle这是目前手机游戏的很火. 在地铁上经常看到的人玩这个游戏. 首先,简介2048 Puzzle游戏. 游戏界面是4X4广场格,每一方格可以放置在数字. 有四种移动数字的方法,向左. ...
- 【网易官方】极客战记(codecombat)攻略-地牢-攻破突袭
关卡连接: https://codecombat.163.com/play/level/hack-and-dash 通过加速药来逃离地牢精灵 简介: 空气中弥漫着危险的气息.你应该从地牢里逃出来. 但 ...
- Nazo解密游戏攻略
啊,终于腾出时间来玩这个游戏了,顺手写一下攻略吧…… 第0关:http://cafebabe.cc/nazo/ 第一关:第一关很简单 点一下就好了 http://cafebabe.cc/nazo/le ...
- JQuery攻略(三)数组与字符串
在上两章,JQuery攻略(一) 基础知识——选择器 与 DOM 和 JQuery攻略(二) Jquery手册 我们为后面的章节打好了基础,在这一章节中,我们继续. 在这一章节中,我们记录的是JQue ...
- 【网易官方】极客战记(codecombat)攻略-地牢-橱柜里的骷髅
关卡连接: https://codecombat.163.com/play/level/cupboards-of-kithgard 谁知道什么样的恐怖事情潜伏在 Kithgard 的橱柜里? 简介: ...
- 【网易官方】极客战记(codecombat)攻略-地牢-逃脱
关卡连接: https://codecombat.163.com/play/level/breakout 矮人正在追你,前方道路已被堵死. 简介: 通过攻击 "弱门" 释放盟友,这 ...
- 【网易官方】极客战记(codecombat)攻略-地牢-恐惧之门
关卡连接: https://codecombat.163.com/play/level/dread-door 恐惧之门后藏满宝藏 简介: while-true 循环可以使用任何方法,如: while ...
随机推荐
- Linux解决Python调用Matlab函数无法导入matlab.engine问题及其他注意事项
问题描述 Linux系统,根据matlab官方文档说明,利用Matlab中的API来实现Python调用Matlab函数.具体方法见文档: https://ww2.mathworks.cn/help/ ...
- 封装jquery插件
最近要到使用别的jquery插件,但部分功能并不能满足,为满足功能,只能对插件进行修改来满足,要修改插件,先要了解插件如何封装, 明白了如何封装插件,才能更好修改插件:如何封装插件? 1.插件封装类型 ...
- 在kali2.0中使用msf图形界面可能会遇到的问题
kali版本:Linux kali 4.9.0-kali3-amd64 #1 SMP Debian 4.9.18-1kali1 (2017-04-04) x86_64 GNU/Linux 编写日期:2 ...
- docker安装详解
系统要求 64位操作系统 Linux kernel大于等于3.10 CentOS 7以及以上版本 yum安装 移除旧版本docker信息 # yum -y remove docker docker-c ...
- CSS3与页面布局学习总结——多种页面布局
一.负边距与浮动布局 1.1.负边距 所谓负边距就是margin取负值的情况,如margin:-40px:margin-left:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见 ...
- 洛谷 P2796 Facer的程序 题解
题面 一个树形DP, f[i]=表示以i为根可以得到的子树个数: 则f[i]*=(f[j]+1): 初始化f[i]=1; ans=sigma(f[i]); #include <bits/stdc ...
- python 压缩文件(解决压缩路径问题)
#压缩文件 def Zip_files(): datapath = filepath # 证据路径 file_newname = datapath + '.zip' # 压缩文件的名字 log.deb ...
- 2019 Multi-University Training Contest 8 - 1006 - Acesrc and Travel - 树形dp
http://acm.hdu.edu.cn/showproblem.php?pid=6662 仿照 CC B - TREE 那道题的思路写的,差不多.也是要走路径. 像这两种必须走到叶子的路径感觉是必 ...
- uoj218_火车管理
题意 \(n\)个位置,每个位置一个栈,三种操作,询问区间栈顶的和,区间入栈某个数,单点出栈某个数. 分析 用一个线段树来维护栈顶的和,区间(单点)更新和区间询问. 用一个主席树来维护每个位置最新一次 ...
- sql删除重复行和删除字段首位
删除重复行 user_info: -- 单字段筛选重复行 SELECT *from user_info WHERE NAME in ( SELECT NAME from user_info GROUP ...