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

codecombat中国游戏网址: http://www.codecombat.cn/
所有代码为javascript代码分享

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

31、为援兵坚持住

// 食人魔正在爬悬崖
// 为集结民兵组织保护足够长时间的农民。
loop {
    var flag = this.findFlag();
    var enemy = this.findNearestEnemy();
    if (flag) {
        // 捡旗子
        this.pickUpFlag(flag);
    }
    else if (enemy) {
        // 否则,攻击!
        // 使用旗子移动到指定位置,如果收割技能冷却,就使用收割技能。
        if (this.isReady("cleave")) {
            this.cleave(enemy);
        }
        else {
            this.attack(enemy);
        }
    }
}

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

32、致命追逐

// 收集金币使用旗子来建造陷阱
// 你在这处理这些食人魔

loop {
    var flag = this.findFlag();
    var item = this.findNearestItem();
    if (flag) {
        this.pickUpFlag(flag);
        var flagpos = flag.pos ;
        var x = flagpos.x ;
        var y = flagpos.y ;
        this.buildXY("fire-trap", x, y);
    }
    else if (item) {
        var itempos = item.pos ;
        var m = itempos.x ;
        var n = itempos.y ;
        this.moveXY(m, n);
    }
}

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

33、敏捷的匕首

// 长距离用你的弓,短距离用匕首
loop {
    var enemy = this.findNearestEnemy();
    if (enemy) {
        var distance = this.distanceTo(enemy);
        if (distance < this.throwRange) {
            // 向敌人扔你的匕首
            this.throw(enemy);
        }
        else {
            // 用你的弓攻击敌人
            this.attack(enemy);
        }
    }
}

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

34、弹片

// 使用炸药干掉食人魔
// 然后用你的弓干掉他们
loop {
    var enemy = this.findNearestEnemy();
    if (enemy) {
        if (this.isReady("throw")) {
            var distance = this.distanceTo(enemy);
            // 如果食人魔距离多于15米的时候,扔炸药炸他
            // 使用 if 来比较距离和15
            if (distance > 15) {
                this.throw(enemy);
            }
            // 使用 else 来攻击它如果你不能够炸它
            else {
                this.attack(enemy);
            }
        }
        else {
            this.attack(enemy);
        }
    }
}

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

35、死亡之触

// 在短距离中释放你的『吸取生命』技能。
// 使用你的法丈在远距离攻击。

loop {
    var enemy = this.findNearestEnemy();
    if (enemy) {
        var distance = this.distanceTo(enemy);
        if (distance < 15) {
            // 在敌人里释放『吸取生命』技能。
            this.cast("drain-life", enemy);
        }
        else {
            // 使用你的盟友攻击敌人。
            this.attack(enemy);
        }
    }
}

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

36、修骨者

// 拯救盟友的士兵来突围
loop {
    if (this.canCast("regen")) {
        var bernardDistance = this.distanceTo("Bernard");
        if (bernardDistance < 10) {
            // Bernard需要治疗!
            this.cast("regen", "Bernard");
        }
        
        // 使用『if』和『distanceTo』来治疗 Chandra
        // 如果她小于10米的距离。
        var chandraDistance = this.distanceTo("Chandra");
        if (chandraDistance < 10) {
            this.cast("regen", "Chandra");
        }
    }
    else {
        // 如果你没有执行 regen,使用 if 和 distanceTo 
        // 来攻击那些小于一定距离的敌人 this.attackRange.
        var enemy = this.findNearestEnemy();
         if (enemy !== null) {
            this.attack(enemy);
        }
    }
}

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

37、强攻农舍

//注意更换更好的装备
// 士兵会慢慢到达,但是食人魔会淹没他们。
// 基本的攻击循环是不能够让你活下来的
loop {
    var flag = this.findFlag();
    var enemy = this.findNearestEnemy();
    if(flag) {
        this.pickUpFlag(flag);
    } 
    if (this.findNearestItem()) {
        var itempos = this.findNearestItem().pos;
        var x = itempos.x ;
        var y = itempos.y ;
        this.moveXY(x, y);
    }
    else {
        if (this.canCast("drain-life")) {
            this.cast("drain-life", enemy);
        }
        else if (this.canCast("regen")) {
            this.cast("regen", this);
        }
        else if (enemy !== null) {
            this.attack(enemy);
        }
        
    }
}

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

38、不公平的支持

// 偷偷穿过森林,伏击萨满。
// 听从指挥官Craig 小心接近中的敌人。
// 放置旗子后,按提交。
loop {
    var flag = this.findFlag();
    var enemy = this.findNearestEnemy();
    var distance = this.distanceTo("Commander Craig");
    if (flag){
        // 捡起旗子。
        this.pickUpFlag(flag);
    }
    else if (distance < this.attackRange) {
        this.cast("regen", "Commander Craig");
    }
    else if (enemy){
        // 攻击视野内的敌人。
        this.attack(enemy);
    }
}

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

39、战术时机

// 帮助前线。
// 如果任何人溜,放回一个旗子。
loop {
    var enemy = this.findNearestEnemy();
    var flag = this.findFlag();
    if (flag) {
        this.pickUpFlag(flag);
    }
    else if (this.canCast("drain-life")) {
        this.cast("drain-life", enemy);
    }
    else if (this.canCast("regen")) {
        this.cast("regen", this);
    }
    else {
        this.attack(enemy);
    }
}

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

40、林间空地末日

//我使用了活动获得物品龙爪法杖
// 一波食人魔靠近,使用旗子赢得战役!
loop {
    var flag = this.findFlag();
    var enemy = this.findNearestEnemy();
    if (flag) {
        this.pickUpFlag(flag);
    }
    else if (this.canCast("summon-fangrider")) {
        this.cast("summon-fangrider");
    }
    else if (enemy) {
        if (this.canCast("regen")) {
            this.cast("regen", this);
        }
        else {
            this.attack(enemy);
        }
    }  
}

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

41、保卫要塞

代码同40关-林间空地末日

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

42、边远宝藏

// 从2~3个树丛里 收集100个金币
// 如果你赢了,会变得更难(并且有更多奖励)
// 如果你输了,需要等待一天再次挑战
// 记住,每次提交都会得到新的随机种子。
// 从2~3个树丛里 收集100个金币
// 如果你赢了,会变得更难(并且有更多奖励)
// 如果你输了,需要等待一天再次挑战
// 记住,每次提交都会得到新的随机种子。
loop {
    var flag = this.findFlag();
    var item = this.findNearestItem();
    if (this.canCast("summon-fangrider")) {
        this.cast("summon-fangrider");
    }
    if (flag) {
        this.pickUpFlag(flag);
    }
    if (this.canCast("regen")) {
        this.cast("regen", this);
    }
    if (item) {
        var itemp = item.pos ;
        var x = itemp.x ;
        var y = itemp.y ;
        this.moveXY(x, y);
    }
}


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

43、野外逃亡

// 生存一分钟。
// 如果你赢了,这关卡将会变得更难(以及更好的奖励)。
// 如果你输了,你必须等待24小时后才能再次挑战。
// 记得,每一次提交都会获得不同的地图。
loop {
    var flag = this.findFlag();
    var item = this.findNearestItem();
    var enemy = this.findNearestEnemy();
    if (this.canCast("summon-fangrider")) {
        this.cast("summon-fangrider");
    }
    if (flag) {
        this.pickUpFlag(flag);
    }
    if (this.canCast("regen")) {
        this.cast("regen", this);
    }
    if (enemy) {
        this.attack(enemy);
    }
}

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

44、失落的维京

// 你必须点击帮助按钮查看本关的详细描述

// 乌鸦会告诉你这些迷宫的参数都是什么用处!

// 你已经向北走了多少sideSteps,距离红色X 标记。
var sideSteps = 1;

// 你已经向东走了多少步,距离红色X 标记。
var steps = 1;

// 用步数乘以这个来确定你的 X 坐标,别修改这个!
var X_PACE_LENGTH = 4;

// 用sideSteps成衣这个来确定你的 Y 坐标,别修改这个!
var Y_PACE_LENGTH = 6;

// 这个迷宫在 X 方向有35步
while(steps <= 35) {

    // 进行下一步:
    this.moveXY(steps * X_PACE_LENGTH, sideSteps * Y_PACE_LENGTH);
    // 根据特殊规则,增加合适的步数和 sideSteps
    steps++;
    if (steps <= 6) {
        sideSteps ++ ;
    }
    if (steps > 6 && steps <= 11) {
        sideSteps -- ;
    }
    if (steps == 12) {
        sideSteps += 5 ;
    }
    if (steps == 14) {
        sideSteps -= 4 ;
    }
    if (steps > 15 && steps <= 18) {
        sideSteps ++ ;
    }
    if (steps > 18 && steps <= 21) {
        sideSteps -- ;
    }
    if (steps > 22 && steps <=23) {
        sideSteps += 3 ;
    }
    if (steps > 33 && steps <= 34) {
        sideSteps ++ ;
    }
}

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

你可能感兴趣的:(codecombat之边远地区的森林31-44关代码分享)