zoukankan      html  css  js  c++  java
  • 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);
        }
    }
  • 相关阅读:
    持有你自己的权力
    《活在恩典中》:我们所寻求的是什么?
    修学文钞 | 道证法师怎么学印光大师《文钞》
    致初学者:印祖文钞修学次第建议
    印光大师指定的文钞入门篇目
    sql注入在线检测(sqlmapapi)
    【转】Kali Linux 新手折腾笔记
    JAVA开发-我的第一个webScan扫描器
    JAVA开发--游戏24点
    JAVA开发--U盘EXE恢复工具
  • 原文地址:https://www.cnblogs.com/nyw1983/p/11710129.html
Copyright © 2011-2022 走看看