首页:https://cn.codecombat.com/play
语言:Python
第二界面:远边的森林Forest(40关)
时间:2-6小时
内容:if/else、关系操作符、对象属性、处理输入
网页:https://cn.codecombat.com/play/forest
闯关:
第1关:森林保卫战
子网页:https://cn.codecombat.com/play/level/defense-of-plainswood?
# 建立两个围栏保护村民 # 把鼠标放在地图上得到X,Y坐标 self.buildXY("fence", 40, 52); self.buildXY("fence", 40, 20);
第2关:羊肠小道
子网页:https://cn.codecombat.com/play/level/winding-trail?
# 到小路的尽头去,并在那儿修一个栅栏。 # 利用你的 moveXY(x, y)坐标移动功能。 # It's the first point of the path. hero.moveXY(36, 59) # Move at the next points of the path. hero.moveXY(37, 12) # Build a fence to stop the ogre. hero.buildXY("fence", 72, 25)
第3关:丛林里的间隔
子网页:https://cn.codecombat.com/play/level/woodland-cubbies?
# 在丛林里头探索,但务必提高警觉! # 这些丛林角落隔间可能会藏有ogres! hero.moveXY(19, 33) enemy = hero.findNearestEnemy() # 条件判断式将会检查该变数是否参考到一个ogre if enemy: hero.attack(enemy) hero.attack(enemy) hero.moveXY(49, 51) enemy = hero.findNearestEnemy() if enemy: # 在这里撰写攻击敌人指令 hero.attack(enemy) hero.attack(enemy) # pass没有特别的意思,只是用来协助结束条件判断式,写不写都可以 pass hero.moveXY(58, 14) enemy = hero.findNearestEnemy() # 使用条件判断式来确认敌人是否存在 if enemy: # 如果敌人存在就攻击他 hero.attack(enemy) hero.attack(enemy)
第4关:If-stravaganza
子网页:https://cn.codecombat.com/play/level/if-stravaganza?
# 消灭从他们自己的营地里出来的食人魔 while True: enemy = hero.findNearestEnemy() # 使用一个 “if” 语句去检查是否有敌人存在: if enemy: # 攻击敌人如果它存在的话 hero.attack(enemy) hero.attack(enemy)
第5关:背靠背
子网页:https://cn.codecombat.com/play/level/back-to-back?
# 呆在中间防守! while True: enemy = hero.findNearestEnemy() if enemy: # 亦或主动出击... hero.attack(enemy) hero.attack(enemy) pass else: # 亦或回到你的阵地防守。 hero.moveXY(40, 34) pass
第6关:森林劈裂者
子网页:https://cn.codecombat.com/play/level/woodland-cleaver?
# 尽可能经常使用你的新技能“cleave” hero.moveXY(23, 23) while True: enemy = hero.findNearestEnemy() if hero.isReady("cleave"): # “Cleave”掉敌人! hero.cleave(enemy) pass else: # 否则(如果“cleave”还没准备好),就用你的普通攻击 hero.attack(enemy) pass
第7关:边远地区的对峙
子网页:https://cn.codecombat.com/play/level/backwoods-standoff?
# 这些曼切堪食人魔害怕英雄! # 说些什么,他们会吓得往后退。 # 但是,有足够的曼切堪食人魔,他们将联合起来伏击你!小心! # 每当`cleave`(横劈)冷却时间完成,立即用它清除敌人。 while True: # 使用 ‘isReady’ 中的一个 “if-statement” 的语句来检查 “cleave” if hero.isReady("cleave"): # 劈斩! hero.cleave() # 或者,如果 cleave 还没准备好的话: else: # 说一点什么来吓走曼切堪食人魔 hero.say("Bool!") pass
第8关:测距仪
子网页:https://cn.codecombat.com/play/level/range-finder?
# 瘦人正在森林里头巡逻! # 使用distanceTo方法来计算敌人与英雄间的距离 # 说出每个敌人和英雄间的距离以告知大砲要轰炸哪里 enemy1 = "Gort" distance1 = hero.distanceTo(enemy1) hero.say(distance1) enemy2 = "Smasher" # 将distance2变数作为参数,传入say()方法 distance2 = hero.distanceTo(enemy2) # 测量并说出剩余敌人与英雄间的距离 hero.say(distance2) # 不要向你的友军进行射击! enemy3 = "Charles" enemy4 = "Gorgnub" distance4 = hero.distanceTo(enemy4) hero.say(distance4)
第9关:保护农民
子网页:https://cn.codecombat.com/play/level/peasant-protection?
while True: enemy = hero.findNearestEnemy() distance = hero.distanceTo(enemy) if distance < 10: # 如果他们与农民太近,就攻击他们 hero.attack(enemy) pass # 否则的话,呆在农民旁边! else: hero.moveXY(40, 37)
第10关:疯狂的食人魔
子网页:https://cn.codecombat.com/play/level/maniac-munchkins?
# 地上另一个让英雄打开的宝箱! # 攻击宝箱以打开它 # 有些食人魔可不会呆呆地站着挨打! # 当食人魔离你太近时,你得学着保护你自己 while True: enemy =