codecombat

Codecombat 游戏攻略——JavaScript编辑语言——关卡(计算机科学三)Ⅰ

*爱你&永不变心* 提交于 2021-01-23 00:53:06
第一关:友和敌 // 农民和差役聚集在森林里。 // 命令农民战斗,差役滚开! while (true) { var friend = hero.findNearestFriend(); if (friend) { hero.say("去战斗, " + friend.id + "!"); } // 寻找最近的敌人,然后让他们滚开。 var enemy = hero.findNearestEnemy(); if (enemy) { hero.say("滚开," + enemy.id + "!"); } } 涉及的JavaScript知识点: 1. JavaScript 字符串 :JavaScript 字符串用于存储和处理文本;字符串可以存储一系列字符;字符串可以是插入到引号中的任何字符,可以使用单引号或双引号。本关中运用ID属性将敌人名字与另一个字符串连接("滚开," + enemy.id + "!")。 2. JavaScript运算符 :运算符 = 用于赋值,运算符 = 用于给 JavaScript 变量赋值。运算符 + 用于加值,算术运算符 + 用于把值加起来。 3. 用于字符串的 + 运算符 :+ 运算符用于把文本值或字符串变量加起来(连接起来)。如需把两个或多个字符串变量连接起来,使用 + 运算符。 4. JavaScript变量 :变量是用于存储信息的"容器"

「网易官方」极客战记(codecombat)攻略-山峰-木材守卫

妖精的绣舞 提交于 2020-11-09 14:30:38
(点击图片进入关卡) 使用循环命令的部队。 简介 一个 for 循环类似于一个 while 循环。有更多的设置,但它可以用来完成同样的事情。 默认代码 while True: # 收集金子 # 如果你有足够的金币,召唤一个士兵。 # 使用 for 循环来命令每个士兵。 # for 循环有两个部分『for X in Y』 # Y 是被循环的数组结构 # Y 中的每个元素都会执行,X 会被设置称当前循环的个体 for friend in hero.findFriends(): if friend.type == "soldier": enemy = friend.findNearestEnemy() # 如果这有一个敌人,命令她攻击。 # 否则的话,移动她到地图的右边。 概览 这个关卡介绍了 for 循环。根据你所使用的语言,它们可以是完全不同的,所以请查看 S 级默认代码中的注释以获得帮助。 记住,你命令你的士兵 command(soldier, "attack", enemy) 或者 command(soldier, "move",pos) . 你的英雄应该留下来收集硬币。如果你试着亲自和食人魔作战,你可能会吸引食人魔的注意! 木材守卫解法 while True: # 收集金子 coin = hero.findNearest(hero.findItems()) if coin:

「网易官方」极客战记(codecombat)攻略-森林-博士猫咪-phd-kitty

怎甘沉沦 提交于 2020-10-26 11:33:15
(点击图片进入关卡) 用那只最聪明的美洲狮宠物给农民们留下深刻印象 简介 给小村子里的人带来一场精彩表演吧。 使用 pet.say() 让它回答听到的问题。 别忘了用 pet.on() 指派 sayTwo 给 "hear" 事件作为处理函数。 默认代码 # 教你的宠物回答问题! # 很幸运,所有的答案都是"2" def sayTwo(event): # 使用pet.say()来回答"2" pass # 使用pet:on(),通过sayTwo来处理"hear"事件 # 现在休息并观看表演吧! hero.say("一加一等于…?") hero.say("x^3 - 6x^2 + 12x - 8 = 0. x等于多少?") hero.say("火星有多少卫星?") 概览 教猫咪执行各种特殊技能吧!使用正确答案重新为猫咪编程,通过提出各种问题让观众叹为观止。 def sayApplesauce(event): pet.say("Applesauce") pet.on("hear", sayApplesauce) hero.say("什么由苹果做成?") hero.say("什么被捣碎做成酱汁?") hero.say("一点肉桂能改善什么?") 博士猫咪 解法 # 教你的宠物回答问题! # 很幸运,所有的答案都是"2" def sayTwo(event): # 使用pet.say()来回答

「网易官方」极客战记(codecombat)攻略-森林-发狂的矮人-maniac-munchkins

倖福魔咒の 提交于 2020-10-25 07:41:21
(点击图片进入关卡) 在食人魔的攻击下防守!打开宝箱,拿走宝物。 简介 在受到一群兽人和某些特别愤怒的兽人的攻击时,打开箱子。 if condition1: # 这只有在条件1为真时才会发生。 elif condition2: # 只有条件1是错误的,条件2是正确的,才会发生这种情况。 else: # 只有当条件1和条件2都为假时才会发生这种情况。 默认代码 # 又一个宝箱等待英雄打开! # 攻击宝箱来打开它。 # 有些食人魔矮人可不会呆呆地站着挨打! # 当食人魔离你太近时,你得学着保护你自己 while True: enemy = hero.findNearestEnemy() distance = hero.distanceTo(enemy) if hero.isReady("cleave"): # 如果劈斩就绪,优先使用劈斩: pass elif distance < 5: # 攻击靠近并离你最近的食人魔矮人 pass else: # 否则,尝试打开宝箱: # 使用宝箱的名称进行攻击:"Chest"。 pass 概览 这一关里,矮人会发起周期性攻击,而不等待支援! 使用 cleave 打败任何靠近的矮人队伍,不过 cleave 需要冷却完毕才能用 isReady 能帮你确认。 if hero.isReady("cleave"): # 这只在英雄的"cleave"就绪时发生。

「网易官方」极客战记(codecombat)攻略-沙漠-宠物翻译家-pet-translator

老子叫甜甜 提交于 2020-10-20 13:10:50
(点击图片进入关卡) Sdrawkcab 雇佣兵帮火能提供强大的火力... 如果任何人都可以说他们的语言。 简介 Sdrawkcab 雇佣军正在为即将到来的食人魔攻击提供 intel! 使用你的宠物使用 event.message 属性来解密他们说的话。 默认代码 # 你的宠物应该翻译命令。 def onHear(event): # 宠物听到的消息在event.message中 message = event.message # 如果消息是 "North": if message == "North": # 宠物说 "Htron"。 pet.say("Htron") # 如果消息是 "South": if message == "South": # 宠物说 "Htuos"。 pass # 如果消息是 "East": # 宠物说 "Tsae"。 # 分配事件处理程序。 pet.on("hear", onHear) while True: enemy = hero.findNearestEnemy() # 不要攻击Brawlers。 if enemy and enemy.type != "brawler": hero.attack(enemy) 概览 我们的侦察兵在营地附近看到了几组打斗者。 幸运的是,我们有几个雇佣的大炮。 不幸的是,炮兵不理解我们的语言。 当你的英雄在战斗时

「网易官方」极客战记(codecombat)攻略-森林-乡村漫游者-village-rover

风格不统一 提交于 2020-10-17 00:05:57
(点击图片进入关卡) 在村庄里巡逻是个重复工作,使用函数会让其更加简单! 简介 在村庄中巡逻是很无聊的重复工作。 使用函数可以让重复工作轻松许多。你可以将很多行代码放到一行里! # 定义一个函数 def findAndAttackEnemy(): enemy = hero.findNearest(hero.findEnemies()) if enemy: hero.attack(enemy) # 之前所有的代码现在都可以用一行搞定了 findAndAttackEnemy() 默认代码 # 定义一个函数 def findAndAttackEnemy(): enemy = hero.findNearestEnemy() if enemy: hero.attack(enemy) # 这段代码不是函数的一部分。 while True: # 现在你可以使用findAndAttackEnemy在村子里巡逻 hero.moveXY(35, 34) findAndAttackEnemy() # 现在移动到右侧入口。 # 使用findAndAttackEnemy 概览 函数是代码的重要组成部分。 你一直都在使用函数,例如如下代码: hero.attack(enemy) ... 这是在调用 ("calling" 或者说 "invoking") 一个函数,名为 attack 。 调用 attack

「网易官方」极客战记(codecombat)攻略-山峰-食人魔山谷挖宝

喜欢而已 提交于 2020-10-14 11:54:47
(点击图片进入关卡) 他们的山里有金子... 金子和食人魔。 简介 使用 findItems() 作为所有硬币的数组。 findNearest(array) 查找数组中最近的元素。 记住如何构造对象文字: {"x":16,“"y":38} 。 默认代码 # 一大群食人魔来之前你只有20秒时间! # 尽可能去捡金币,然后你撤退到你栅栏后面的基地里! while hero.time < 20: # 收集金币 hero.say("我应该捡点金币") while hero.pos.x > 16: # 撤退到栅栏后面 hero.say("我应该撤退") # 建立栅栏挡住食人魔 概览 使用 findItems() 来找到高级眼镜的硬币。 在食人魔出现之前,看看你是否可以优化你的路径来收集超过 60 个硬币! 使用像 {"x":16,"y":38} 这样的对象文字来移动到特定的位置,比如在栅栏后面。 食人魔山谷挖宝解法 # 一大群食人魔来之前你只有20秒时间! # 尽可能去捡金币,然后你撤退到你栅栏后面的基地里! while hero.time < 20: # 收集金币 coin = hero.findNearest(hero.findItems()) hero.say("我应该捡点金币") while hero.pos.x > 16: # 撤退到栅栏后面 hero.say("我应该撤退") #

「网易官方」极客战记(codecombat)攻略-沙漠-空中桥梁-air-bridge

独自空忆成欢 提交于 2020-10-09 00:28:53
(点击图片进入关卡) SOS!SOS! 我们需要一架直升机! 简介 农民被困。 我们需要帮助他们并清除雷区。 Grffin Baby宠物可以帮助我们完成这项任务。 它可以像抓物品一样抓起某个人, maxHealth < 0.1 * hero.maxHealth pet.carryUnit(unit,x,y) 带农民,然后用munchkin清除雷区。 默认代码 # 帮助农民逃跑。 def onSpawn(event): # 我们需要拯救三个农民。 remainingPeasants = 3 while remainingPeasants > 0: # 找到一个好位置。 pet.moveXY(40, 55) peasant = pet.findNearestByType("peasant") if peasant: # 把农民带到中间的通道。 pet.carryUnit(peasant, 40, 34) remainingPeasants -= 1 munchkin = pet.findNearestByType("munchkin") # Carry a munchkin to the fire traps: pet.on("spawn", onSpawn) # 战斗! 概览 Grinffin宠物的独特能力是“抓起”,只需要告诉它抓起谁,放到哪里。 thrower = pet

「网易官方」极客战记(codecombat)攻略-沙漠-脆弱的士气-brittle-morale

徘徊边缘 提交于 2020-10-02 08:50:10
(点击图片进入关卡) 当指挥官倒下之时,敌人将会撤退。 简介 你只有一名弓箭手,因此你需要首先打败兽人首领! 遍历 enemies 数组,比较他们的 health 。最多 health 的敌人就是了! 默认代码 # 你有一个弓箭手。 让它数! # 这将返回一个最多生命值的敌人 def findStrongestEnemy(enemies): strongest = None strongestHealth = 0 enemyIndex = 0 # 当 enemyIndex 少于敌人的长度 # 将敌人变量设置为敌人[enemyIndex] # 如果 enemy.health 大于 strongestHealth # 将 `strongest` 赋值为 enemy # 将strongestHealth赋值为enemy.health # 让 enemyIndex 递增 return strongest enemies = hero.findEnemies() leader = findStrongestEnemy(enemies) if leader: hero.say(leader) 概览 为了找到兽人首领,你需要创建一个函数,找到最大血量的兽人。 函数应该接收一个含有敌人的数组,返回一个敌人。 使用 enemy.health 作为比较依据。 复习一下怎么迭代数组: array = [

「网易官方」极客战记(codecombat)攻略-山峰-动物园管理员-zoo-keeper

梦想的初衷 提交于 2020-10-01 18:40:57
(点击图片进入关卡) 保护雪人的笼子免遭食人魔的蓄意破坏。 简介 不要让食人魔打开盒子! 默认代码 # 保护笼子。 # 放一个士兵在每一个 X 的位置 points = [] points[0] = {"x": 33, "y": 42} points[1] = {"x": 47, "y": 42} points[2] = {"x": 33, "y": 26} points[3] = {"x": 47, "y": 26} # 1.收集80金币。 # 2.建造4个士兵。 for i in range(4): hero.summon("soldier") # 3.派你的士兵到特定的位置上。 while True: friends = hero.findFriends() for j in range(len(friends)): point = points[j] friend = friends[j] enemy = friend.findNearestEnemy() if enemy and enemy.team == "ogres" and friend.distanceTo(enemy) < 5: # 命令友方攻击。 pass else: # 命令的朋友移动到特定点上。 pass 概览 这个关卡显示了如何在 for 循环中使用一系列数字来访问多个相关数组。