codecombat之Sarven沙漠13-24关及森林45/46关代码分享

codecombat中国游戏网址:http://www.codecombat.cn/

所有代码为javascript代码分享

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

13、诱饵钻

// 我们在测试一个新的战斗单位:诱饵。

// 创建4个诱饵,然后汇报给 Naria

var decoysBuilt = 0;

loop {

var item = this.findNearest(this.findItems());

// 掠夺金币!

var x = item.pos.x ;

var y = item.pos.y ;

this.moveXY(x, y);

// 每个诱饵消费25个金币,使用石英灵石。

// 让它知道当你有超过25个金币的时候 this.gold.

if (this.gold > 25) {

this.buildXY("decoy", x, y);

decoysBuilt ++ ;

}

// 当你一直走的时候,保持统计你创建的诱饵的数量。

if (decoysBuilt == 4) {

break;

}

// 当你创建了4个诱饵时跳出循环

}

this.moveXY(14, 36);

this.say("完成创建诱饵!");

// 去找 Naria 并告诉她你创建了多少个诱饵。

this.say("4");

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

14、牦牛牵引

// 保护 brandy 避免那些冲来的口渴的耗牛!

// 收集金币来建造诱饵干扰耗牛。

// 使用旗子来决定什么时候在哪里建造诱饵。

loop {

var flag = this.findFlag();

var item = this.findNearest(this.findItems());

if (flag) {

if (this.gold >= 25) {

var x = flag.pos.x ;

var y = flag.pos.y ;

this.buildXY("decoy", x, y);

}

this.pickUpFlag(flag);

}

if (item) {

var goldx = item.pos.x ;

var goldy = item.pos.y ;

this.moveXY(goldx, goldy);

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

15、沙漠战役

// while循环重复直到条件为假。

// 在while 循环内部执行动作,否认则它永远不能执行。

var ordersGiven = 0;

while (ordersGiven < 5) {

// 在站场上移动和排列你的盟友。 (如果你是直接在他们面前,他们只能听到你的。

var x = this.pos.x;

var y = this.pos.y - 9;

this.moveXY(x, y);

this.say("Attack!");

ordersGiven ++ ;

}

// 当你找到规律,加入攻击。

loop {

var enemy = this.findNearest(this.findEnemies());

if (enemy) {

if (this.isReady("bash")) {

this.bash(enemy);

}

else {

this.attack(enemy);

}

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

16、尘埃

// 总是采取行动在一个while循环,否则会无限!

// 使用循环直到你有足够的击杀10个芒奇金人

var hits = 0;

this.moveXY(58, 30);

while (hits < 10) {

var enemy = this.findNearest(this.findEnemies());

if (enemy) {

this.attack(enemy);

hits ++ ;

}

}

// 当你完成后,撤退到伏击点。

this.moveXY(79, 33);

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

17、Sarven 拯救

// 从强盗中救出农民并送她回到村。

// 选择适合你的路线,避开巡逻或直面迎接他们。

// 药水会有随机效果–有好的,也有不好的。

// 觉得自己很勇敢?如果你可以得到食人魔的财宝的话,就会得到奖励。

loop {

var flag = this.findFlag();

var enemy = this.findNearest(this.findEnemies());

if (flag) {

this.pickUpFlag(flag);

}

if (enemy) {

if (this.isReady("bash")) {

this.bash(enemy);

}

if (this.isReady("cleave")) {

this.cleave(enemy);

}

else {

this.attack(enemy);

}

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

18、神圣的雕像

同17关Sarven 拯救代码

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

19、蜃景制造者

// 当你的金币小于25个的时候,收集金币。

// 然后建造诱饵来引诱食人魔离开路线。

// 当你的生命值满了,冲着小食人魔喊叫侮辱他们,引诱他们。

// 然后退回到你的基地伏击他们。

while (this.gold < 25) {

var mygold = this.findNearest(this.findItems()).pos;

var x = mygold.x ;

var y = mygold.y ;

this.moveXY(x, y);

}

this.buildXY("decoy", 72, 69);

loop {

var flag = this.findFlag();

if (flag) {

this.pickUpFlag(flag);

}

if (this.health == this.maxHealth) {

this.say("Come on baby !");

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

20、Sarven 救世主

// 一个数组就是物品的数列。

// 这个数组是一个朋友名字的数列。

var friendNames = [‘Joan‘, ‘Ronan‘, ‘Nikita‘, ‘Augustus‘];

// 数组从零开始计数,不是1!

var friendIndex = 0;

// 循环该数组中的每一个名字

// 使用.lenght 属性来得到数组的长度。

while (friendIndex < friendNames.length) {

// 使用方括号来获得数组中的名字。

var friendName = friendNames[friendIndex];

// 告诉你的朋友回家。

// 使用+来连接两个字符串。

this.say(friendName + ‘, go home!‘);

friendIndex ++ ;

// 增加索引来获取数组中的下一个名字

}

this.moveXY(22, 31);

this.buildXY("fence", 29, 30);

// 回去建造栅栏让食人魔远离。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

21、奇数沙尘暴

// 这个数组包含朋友和食人魔。

// 偶数元素是食人魔,奇数元素是伙伴。

var everybody = [‘Yetu‘, ‘Tabitha‘, ‘Rasha‘, ‘Max‘, ‘Yazul‘,  ‘Todd‘];

var enemyIndex = 0;

while (enemyIndex < everybody.length) {

// 使用方括号把食人魔的名字从数组中获取出来

var enemyname = everybody[enemyIndex] ;

// 使用变量传入食人魔的名字,攻击它们。

this.attack(enemyname);

// 每次递增2,来跳过朋友。

enemyIndex += 2;

}

this.moveXY(36, 53);

// 在击败食人魔之后,向绿洲移动。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

22、潜伏

// 用findEnemies把敌人存在数组enemies中

// 只攻击萨满巫师,不要攻击牦牛!

var enemies = this.findEnemies();

var enemyIndex = 0;

// 把这段代码用一个while loop 功能循环遍历所有的敌人

while (enemyIndex < enemies.length) {

var enemy = enemies[enemyIndex];

if (enemy.type == ‘shaman‘) {

while (enemy.health > 0) {

if (this.isReady("bash")) {

this.bash(enemy);

}

this.attack(enemy);

}

}

enemyIndex ++ ;

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

23、优待

// 首先,在所有的敌人中循环...

var enemies = this.findEnemies();

var enemyIndex = 0;

// ...但是仅攻击 ‘thrower‘ 类型的敌人。

// 别忘了使用你的特殊能力!

while (enemyIndex < enemies.length) {

if (enemies[enemyIndex].type == "thrower") {

if (this.isReady("cleave")) {

this.cleave(enemies[enemyIndex]);

}

else {

this.attack(enemies[enemyIndex]);

}

}

enemyIndex ++ ;

}

// 然后再到所有的敌人中循环...

enemies = this.findEnemies();

enemyIndex = 0;

// ...干掉仍然活着的每个

while (enemyIndex < enemies.length) {

if (this.isReady("cleave")) {

this.cleave(enemies[enemyIndex]);

}

else {

this.attack(enemies[enemyIndex]);

}

enemyIndex ++ ;

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

24、Sarven 牧羊人

// 使用 while 循环来对付食人魔。

loop {

var enemies = this.findEnemies();

var enemyIndex = 0;

while (enemyIndex < enemies.length) {

// 将攻击逻辑放到 while 循环里来攻击所有的敌人。

// Find the array‘s length with: enemies.length

var enemy = enemies[enemyIndex];

// "!=" 意思是 "不等于"

if (enemy.type != "sand-yak") {

// 当敌人的健康值大于0,攻击它!

if (enemy.health > 0) {

if (this.isReady("cleave")) {

this.cleave(enemy);

}

else if (this.isReady("bash")) {

this.bash(enemy);

}

else {

this.attack(enemy);

}

}

}

enemyIndex ++ ;

}

// 在两波敌人之间,移动回中央。

this.moveXY(40, 32);

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

番外篇:森林45关-野马

loop {

// 你怎么寻找最近的友好单位?

// 马=?

var horse = this.findNearest(this.findFriends());

var flag = this.findFlag();

if (horse ) {

var x1 = horse.pos.x - 7;

var x2 = horse.pos.x + 7;

if (x1 >= 1) {

// 移动到马的y坐标,但使用x1作为x坐标。

this.moveXY(x1, horse.pos.y);

} else if (x2 <= 79) {

// 移动到马的y坐标,但使用x2作为x坐标。

this.moveXY(x2, horse.pos.y);

}

var distance = this.distanceTo(horse);

if (distance <= 10) {

this.say("Whoa");

// 移到到红色的x来使马返回农场。

// 移回牧场开始寻找下一匹马。

if (flag) {

this.pickUpFlag(flag);

}

}

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

番外篇:森林46关-天启

//使用增加速度的装备

// 炮火的天启在接近我们!

// 在60秒内躲避炮弹。

// 提示:旗子可能派上用场,比如Coinucopia这关。

// 因为攻击是每次提交时随机的,所以你不能使用moveXY这个指令。

loop {

var flag = this.findFlag();

if (flag) {

this.pickUpFlag(flag);

this.shield();

}

}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

版权声明:本文为博主原创文章,喜欢就拿去吧!^-^

时间: 2024-12-22 20:27:22

codecombat之Sarven沙漠13-24关及森林45/46关代码分享的相关文章

codecombat之Sarven沙漠25-37关代码分享

codecombat中国游戏网址:http://www.codecombat.cn/ 所有代码为javascript代码分享 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25.捡闪亮东西的人 // 很快的获取最多的金币 loop { var coins = this.findItems(); var coinIndex = 0; while (coinIndex < coins.length) { // 把这个封装进循环里枚举所有的硬币 var coin = coi

codecombat之Sarven沙漠1-12关代码分享

codecombat中国游戏网址:http://www.codecombat.cn/ 所有代码为javascript代码分享 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.沙丘 // 收集硬币,忽略砂耗牛和树榴.和投掷者,食人魔战斗. loop { enemy = this.findNearestEnemy(); item = this.findNearestItem(); flag = this.findFlag(); if (flag) { this.pick

codecombat安息之云山峰1-10关及森林47/48关代码分享

codecombat中国游戏网址: http://www.codecombat.cn/ 所有代码为javascript代码分享 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.峭壁追逐 // 抓住 Pender Spellbane 去了解她的秘密. loop { // Pender是这里唯一的朋友,所以她总是在最近的位置. pender = this.findNearest(this.findFriends()); if (pender) { // moveXY()

codecombat安息之云山峰11-21关及沙漠38关代码分享

codecombat中国游戏网址: http://www.codecombat.cn/ 所有代码为javascript代码分享 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 11.零和 // 在两分钟内击败敌方英雄. loop { var enemies = this.findEnemies(); var nearestEnemy = this.findNearest(enemies); var item = this.findNearest(this.findIte

codecombat之边远地区的森林1-11关及地牢38关代码分享

codecombat中国游戏网址:http://www.codecombat.cn/ 全部代码为javascript代码分享 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1.Boom! and Bust // Use your buildXY hammer to build two "fire-trap"s near the gate. // They will detonate when you move back to a safe distance!

codecombat之边远地区的森林31-44关代码分享

codecombat中国游戏网址: http://www.codecombat.cn/ 所有代码为javascript代码分享 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31.为援兵坚持住 // 食人魔正在爬悬崖 // 为集结民兵组织保护足够长时间的农民. loop { var flag = this.findFlag(); var enemy = this.findNearestEnemy(); if (flag) { // 捡旗子 this.pickUpFla

codecombat之边远地区的森林23-30关及地牢40\41关代码分享

codecombat中国游戏网址: http://www.codecombat.cn/ 所有代码为javascript代码分享 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 23.Agrippa防守 loop { var enemy = this.findNearestEnemy(); if(enemy) { // 用 distanceTo 获取与敌人的距离. var distance = this.distanceTo(enemy); // 如果距离小于5米...

codecombat之边远地区的森林12-22关及地牢39关代码分享

codecombat中国游戏网址: http://www.codecombat.cn/ 所有代码为javascript代码分享 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 12.兽人营地 // 如果有敌人,则攻击之 // 如果没有敌人,则攻击财宝箱 loop { // 使用if/else语句 var enemy = this.findNearestEnemy(); if (enemy) { this.attack(enemy); } else { this.atta

codecombat安息之云山峰22-31关代码分享

codecombat中国游戏网址: http://www.codecombat.cn/ 所有代码为javascript代码分享 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 22.躁动的死亡 // 这个关卡应该是非常难的!你也许需要一个很棒的战略与或装置去完成它! // 找到然后杀死雪人,为了仪式去收集他的血液. // 你也许想收集雪人遗留下的金币,你需要他们去召唤一只军队. // 站在召唤石旁(红色X),开始召唤. // this.flags = function(){ var