當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
codecombat极客战记森林(JavaScript)41-60关卡
生活随笔
收集整理的這篇文章主要介紹了
codecombat极客战记森林(JavaScript)41-60关卡
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
PS:JavaScript版本,方便和我一樣的前端小白,找不到攻略卡關(guān)卡的EMO!
41-以靜制動
?
// 你可以將一個if語句放到另一個if語句當中。 // 你必須注意這些if語句是如何互相影響的。 // 從外層if/else結(jié)構(gòu)開始會有幫助。 // 使用注釋為內(nèi)層if/else占位預留空間:while(true) {var enemy = hero.findNearestEnemy();// 如果有敵人出現(xiàn),那么就...if(enemy) {// 使用distanceTo創(chuàng)建一個距離變量。if (hero.distanceTo(enemy) < 5){hero.attack(enemy);}// 如果敵人與你的距離小于5米,那么就攻擊。// 否則(敵人還離得很遠),那么就使用shield。// 否則(沒有敵人)...} else {// …那么,回到X位置。hero.moveXY(40, 34);} }42-AGRIPPA守衛(wèi)戰(zhàn)
while(true) { var enemy = hero.findNearestEnemy(); if (enemy) { var distance = hero.distanceTo(enemy); var ready = hero.isReady('cleave'); if (distance < 5) { if (ready) { hero.cleave(enemy); } else { hero.attack(enemy); } } } }//心態(tài)小炸,所以原本的標注被清空,但是能通關(guān)?43-AGRIPPA守衛(wèi)戰(zhàn)A
while(true) {var enemy = hero.findNearestEnemy();if(enemy) {// 用 distanceTo 獲取與敵人的距離。var distance = hero.distanceTo(enemy);// 如果距離小于5米...var ready = hero.isReady("cleave");if (distance < 5) {if (ready) {hero.cleave(enemy);}else {hero.attack(enemy);}}// ...如果"cleave"技能準備好了,就用cleave干掉他們!// ...否則,僅僅進行普通攻擊。} }?44-那什么守衛(wèi)戰(zhàn)B
while(true) {var enemy = hero.findNearestEnemy();if(enemy) {// 用 distanceTo 獲取與敵人的距離。var distance = hero.distanceTo(enemy);// 如果距離小于5米...if(distance < 5){}var ready = hero.isReady("cleave");if (ready) {hero.cleave(enemy);}else {hero.attack(enemy);}// ...如果"cleave"技能準備好了,就用cleave干掉他們!// ...否則,僅僅進行普通攻擊。} } //三場那什么守衛(wèi)戰(zhàn)代碼都是一樣的?45-村莊守護神
// 食人魔矮人來襲!保護鎮(zhèn)子!// 定義你自己的函數(shù)來對抗敵人! function cleaveOrAttack() {// 在函數(shù)中,找到敵人,然后劈斬或是攻擊它。var ogre = hero.findNearestEnemy();if (ogre) {if (hero.isReady("cleave")) {hero.cleave(ogre);}// 否則,攻擊食人魔:else {hero.attack(ogre);}} }// 在巡邏點之間移動并調(diào)用函數(shù)。 while (true) {hero.moveXY(35, 34);// 使用上面定義的cleaveOrAttack函數(shù)。cleaveOrAttack();hero.moveXY(47, 27);// 再次調(diào)用函數(shù)。cleaveOrAttack();hero.moveXY(60, 31);// 再次調(diào)用函數(shù)。cleaveOrAttack(); }46-鄉(xiāng)村巡游者:這關(guān)代碼無問題,截圖懶得改了
// 這定義了findAndAttackEnemy函數(shù) function findAndAttackEnemy() {var enemy = hero.findNearestEnemy();if (enemy) {hero.attack(enemy);} }// 這段代碼不是函數(shù)的一部分。 while(true) {// 現(xiàn)在你可以使用findAndAttackEnemy在村子里巡邏hero.moveXY(35, 34);findAndAttackEnemy();// 現(xiàn)在移動到右側(cè)入口。hero.moveXY(60, 31);findAndAttackEnemy();// 使用findAndAttackEnemy}47-村莊守護神
// 食人魔矮人來襲!保護鎮(zhèn)子!// 定義你自己的函數(shù)來對抗敵人! function cleaveOrAttack() {// 在函數(shù)中,找到敵人,然后劈斬或是攻擊它。var ogre = hero.findNearestEnemy();if (ogre) {if (hero.isReady("cleave")) {hero.cleave(ogre);}// 否則,攻擊食人魔:else {hero.attack(ogre);}} }// 在巡邏點之間移動并調(diào)用函數(shù)。 while (true) {hero.moveXY(35, 34);// 使用上面定義的cleaveOrAttack函數(shù)。cleaveOrAttack();hero.moveXY(47, 27);// 再次調(diào)用函數(shù)。cleaveOrAttack();hero.moveXY(60, 31);// 再次調(diào)用函數(shù)。cleaveOrAttack(); }?48-造幣廠
// 差役試圖偷取你的硬幣! // 編寫一個函數(shù),在差役盜取硬幣前將其干掉。function pickUpCoin() {var coin = hero.findNearestItem();if(coin) {hero.moveXY(coin.pos.x, coin.pos.y);} }// 在下方寫一個攻擊敵人的函數(shù)attackEnemy。 // 尋找最近的敵人,如果存在敵人就進行攻擊。function attackEnemy(){var enemy = hero.findNearestEnemy();if (enemy) {hero.attack(enemy);}}while(true) {attackEnemy(); // ? 在寫好 attackEnemy 函數(shù)后取消這一行的注釋。pickUpCoin(); }?49-短時的樹精:別運行直接提交(運行會顯示失敗)
?
// 收集硬幣,然后逃跑,否則樹精會發(fā)現(xiàn)你。// 這個函數(shù)能讓你的英雄拾取一個物品。 function takeItem(item) {hero.moveXY(item.pos.x, item.pos.y); }// 編寫帶一個參數(shù)的函數(shù)"checkTakeRun"。 // 如果物品存在,請使用"takeItem"函數(shù)來獲取。 // 無論有沒有物品,都記得回到初始點(綠色標記)。 function checkTakeRun(item){if (item) {takeItem(item);hero.moveXY(40, 12); } else {hero.moveXY(40, 12); } } // 不要更改這段代碼。 while (true) {hero.moveXY(16, 56);var coin = hero.findNearestItem();checkTakeRun(coin);hero.moveXY(64, 56);coin = hero.findNearestItem();checkTakeRun(coin); }50-森林礦工
// 檢查工人們能否安全挖礦。function checkEnemyOrSafe(target) {// 如果`target`(參數(shù))存在:if (target) {hero.attack(target);}// 那么攻擊目標。// 否則:else {hero.say("baka");}// 使用say() 說點什么來叫農(nóng)民。}while (true) {// 移動到并檢查右上的X標記。hero.moveXY(64, 54);var enemy1 = hero.findNearestEnemy();checkEnemyOrSafe(enemy1);// 移動到左下的X標記處。hero.moveXY(16, 14);// 將findNearestEnemy()的結(jié)果存到一個變量中。var enemy2 = hero.findNearestEnemy();// 調(diào)用checkEnemyOrSafe,并傳遞// findNearestEnemy的結(jié)果作為參數(shù)checkEnemyOrSafe(enemy2); }51-捉迷藏
?
// 收集4顆發(fā)光石,用來打敗食人魔斗士。 // 如果找到發(fā)光石的話,藏起來。 function checkTakeHide(item) {if (item) {// 物品在此,拿走它。hero.moveXY(item.pos.x, item.pos.y);// 然后移動到營地中央(40, 34)hero.moveXY(40, 34);} } while (true) {// 移動到右上的X標記。hero.moveXY(68, 56);// 在那里搜索一塊發(fā)光石。var lightstone = hero.findNearestItem();// 調(diào)用checkTakeHide,并使用參數(shù):lightstonecheckTakeHide(lightstone);// 移動到左上角的標記。hero.moveXY(12, 56);// 搜索發(fā)光石。// 調(diào)用checkTakeHide函數(shù)。// 將搜索的結(jié)果作為參數(shù)傳入。 }52-郵件截停
// 攔截并伏擊所有食人魔信使。function ambushAttack(target) {// 如果目標存在則攻擊目標,并返回標記。// 編寫函數(shù):if (target) {hero.attack(target);hero.moveXY(52, 36);} }while(true) {var ogre = hero.findNearestEnemy();ambushAttack(ogre); }53-墓地陰魂
// 唯一的出口被食人魔堵住了。 // 躲著骷髏怪,并一個個擊敗食人魔。// 這個函數(shù)需要攻擊敵人并隱藏。 function hitOrHide(target) {// 如果'target'存在:// 攻擊'target'。if (target) {hero.attack(target);// 然后移動到紅色標記。hero.moveXY(32, 17); } } while (true) {var enemy = hero.findNearestEnemy();hitOrHide(enemy); }?54-盜墓者
?
// 森林中一座被遺忘的墓地! // 但是食人魔緊追不舍。 // 在防御食人魔矮人的同時打開墓地之門。// 這個函數(shù)應該在敵人存在時攻擊,否則攻擊門! function checkToDefend(target) {// 檢查`target`是否存在var targer = hero.findNearestEnemy();// 如果是這樣,攻擊`target`if (targer) {hero.attack(target);}// 如果沒有`target`,使用else去做點別的事else {hero.attack("Door");}// 否則攻擊 "Door"}while(true) {var enemy = hero.findNearestEnemy();checkToDefend(enemy); }55-邊地之叉
// 使用 checkAndAttack 函數(shù)讓代碼易讀。// 這個函數(shù)有一個形式參數(shù)。 // 形式參數(shù)是一種給函數(shù)傳遞信息的方式。 function checkAndAttack(target) {// 形式參數(shù)'target'只是一個變量!// 它會容納函數(shù)調(diào)用時的實際參數(shù)。if(target) {hero.attack(target);}hero.moveXY(43, 34); }while(true) {hero.moveXY(58, 52);var topEnemy = hero.findNearestEnemy();// 使用帶topEnemy變量的checkAndAttack函數(shù)。checkAndAttack(topEnemy);// 移動到底部的X標記處。hero.moveXY(58, 16);// 創(chuàng)建名為 bottomEnemy 的變量并尋找最近敵人。var bottomEnemy = hero.findNearestEnemy();// 使用 checkAndAttack 函數(shù),并使用 bottomEnemy 變量。checkAndAttack(bottomEnemy); }56-AGRIPPA重構(gòu)
function cleaveOrAttack(enemy) {// 如果"cleave"技能冷卻完畢,那就使用它!否則,使用普通攻擊。if (hero.isReady("cleave")) {hero.cleave(enemy);}else {hero.attack(enemy);} }while(true) {var enemy = hero.findNearestEnemy();if(enemy) {var distance = hero.distanceTo(enemy);if(distance < 5) {// 調(diào)用上面定義的"cleaveOrAttack"函數(shù)cleaveOrAttack(enemy);}} }57-交給劈斬
// 這里展示了如何定義一個叫作cleaveWhenClose的函數(shù) // 函數(shù)定義了一個形式參數(shù),名為`target` function cleaveWhenClose(target) {if(hero.distanceTo(target) < 5) {// 將你的攻擊代碼放到這里。// 如果cleave準備就緒,那就劈斬目標var ready = hero.isReady("cleave");if (ready) {hero.cleave(enemy);}// 否則,使用attack攻擊目標(`target`)!else {hero.attack(target);}} }// 這段代碼不是函數(shù)的一部分。 while(true) {var enemy = hero.findNearestEnemy();if(enemy) {// 注意在cleaveWhenClose內(nèi)部,我們將`enemy`稱為`target`。cleaveWhenClose(enemy);} }?58-邊地好伙伴
// 你現(xiàn)在擁有一個寵物!function speak(event) {// 你的寵物需要用pet.say()進行回應pet.say("mother_f**k"); } // 這將告訴你的寵物,在聽到聲音時運行speak()函數(shù) pet.on("hear", speak);// 和你的寵物交流吧! hero.say("你好小貓");?59-邊地伏擊A
// 在這個關(guān)卡中,你將使用具有兩個參數(shù)的函數(shù)。 // 看看下面的結(jié)構(gòu),注意兩個參數(shù)。 // 這些都可在函數(shù)內(nèi)訪問。function checkAndAttack(x, y) {// 首先移動到參數(shù)提供的坐標。hero.moveXY(x, y);// 然后檢查敵人。var enemy = hero.findNearestEnemy();if (enemy) {hero.attack(enemy);}// 如果有一個的話,攻擊它!}checkAndAttack(24, 42); checkAndAttack(27, 60); // 移動到最后3個x標記并擊敗任何剩余的食人魔矮人。 checkAndAttack(42, 50); checkAndAttack(39, 24); checkAndAttack(55, 29);60-友和敵
// 農(nóng)民和差役聚集在森林里。 // 命令農(nóng)民戰(zhàn)斗,差役滾開!while(true) {var friend = hero.findNearestFriend();if(friend) {hero.say("去戰(zhàn)斗, " + friend.id + "!");}// 尋找最近的敵人,然后讓他們滾開。var enemy = hero.findNearestEnemy();if (enemy) {hero.say("take out," + enemy.id + "!");} }總結(jié)
以上是生活随笔為你收集整理的codecombat极客战记森林(JavaScript)41-60关卡的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android平台上实现银行卡识别(通过
- 下一篇: 论文、报告及教案公式编辑:图片公式转换M