毒气攻击

# 计算所有食人魔的总生命值。def sumHealth(enemies):# 创建一个变量,将它设为0后开始运算totalHealth = 0# 初始化循环索引为0enemyIndex = 0# 當 計數 小于敌人數列長度的時候while enemyIndex < len(enemies):# 将当前敌人的生命值添加到总生命值里totalHealth += enemies[enemyIndex].health# 让 index 递增enemyIndex = enemyIndex + 1#return totalHealthreturn totalHealth# 使用加农炮来打败食人魔。
cannon = hero.findNearest(hero.findFriends())
# 加农炮可以穿透墙壁。
enemies = cannon.findEnemies()
# 计算食人魔生命值的总和。
ogreSummaryHealth = sumHealth(enemies)
hero.say("使用 " + ogreSummaryHealth + " 克。")

公平之战

# 直到你士兵的总生命值大于兽人的.
# 在你的士兵取得优势前不要发起进攻.# This function return the sum of all the units' health.
def sumHealth(units):totalHealth = 0# Complete this function:index = 0while index < len(units):totalHealth += units[index].healthindex += 1return totalHealthwhile True:friends = hero.findFriends()enemies = hero.findEnemies()# 计算并比较你的士兵和兽人的总生命值.if sumHealth(friends) <= sumHealth(enemies):hero.say("Wait")# 当你准备好后说“Attack”.else:hero.say("ATTACK!!!")

空中桥梁

# 帮助农民逃跑。def onSpawn(event):# 我们需要拯救三个农民。remainingPeasants = 3while remainingPeasants > 0:# 找到一个好位置。pet.moveXY(40, 55)peasant = pet.findNearestByType("peasant")if peasant:# 把农民带到中间的通道。pet.carryUnit(peasant, 40, 34)remainingPeasants -= 1munchkin = pet.findNearestByType("munchkin")# Carry a munchkin to the fire traps:pet.carryUnit(munchkin, 35, 21)pet.on("spawn", onSpawn)# 战斗!
enemy = hero.findNearestEnemy()
if enemy:if hero.isReady("cleave"):hero.cleave(enemy)else:hero.attack(enemy)

疯狂Maxer反击

# 小一点的食人魔会造成更多的伤害!
# 优先攻击血少的敌人
while True:weakest = NoneleastHealth = 99999enemyIndex = 0enemies = hero.findEnemies()# 循环检查所有敌人。while enemyIndex < len(enemies):# 如果当前对象的血量更少if enemies[enemyIndex].health < leastHealth:# 标为最弱的,更新 leastHealth 变量leastHealth = enemies[enemyIndex].healthweakest = enemies[enemyIndex]enemyIndex += 1if weakest:# 攻击最弱的食人魔。hero.attack(weakest)pass

疯狂Maxer卖光了

# 金币会在几秒钟之后消失!
# 在他们消失前,收集所有的金币。while True:closestGold = NoneminGoldDist = 9001coinIndex = 0coins = hero.findItems()# 找到最近的金币# 记住,金币价值3点。while coinIndex < len(coins):coin = coins[coinIndex]distance = hero.distanceTo(coin)if distance < minGoldDist and coin.value == 3:minGoldDist = distance closestGold = coincoinIndex += 1if closestGold:#现在去到最近的金币,并得到它!hero.moveXY(closestGold.pos.x, closestGold.pos.y)pass

疯狂的Maxer变得贪婪

注意使用的是hero.move,而不是hero.moveXY

# 比你的分身收集的金币多。
# 你只有几秒钟来收集金币,聪明的选择你的路线!
while True:bestCoin = NonemaxRating = 0coinIndex = 0coins = hero.findItems()# 试着计算"价值/距离"来决定你要收集哪个金币。while coinIndex < len(coins):coin = coins[coinIndex]coinIndex += 1#distance = hero.distanceTo(coin)bestValue = coin.value / hero.distanceTo(coin)#hero.say(bestValue)if bestValue > maxRating:bestCoin = coinmaxRating = bestValueif bestCoin:hero.move({"x": bestCoin.pos.x, "y": bestCoin.pos.y})

疯狂的Maxer:兑现

# 你不能到你朋友那边去保卫他们!
# 告诉他们回家,弓箭手会帮助他们while True:weakestFriend = NoneleastHealth = 9999friendIndex = 0# 找出哪个朋友的生命值最差。friends = hero.findFriends()while friendIndex < len(friends):friend = friends[friendIndex]if friend.health < leastHealth:leastHealth = friend.healthweakestFriend = friendfriendIndex += 1# 告诉最弱的朋友先回家。if weakestFriend:hero.say('Hey ' + weakestFriend.id + ', go home!')

最弱者最快

# 击败萨满并生存下去。# 该函数找到最弱的敌人:
def findWeakestEnemy():enemies = hero.findEnemies()weakest = NoneleastHealth = 99999enemyIndex = 0# 遍历所有敌人:while enemyIndex < len(enemies):enemy = enemies[enemyIndex]# 如果敌人血量低于 leastHealth:if enemy.health < leastHealth:# 将其设为最弱的weakest = enemy# 并将 leastHealth 设为其血量leastHealth = enemy.healthenemyIndex += 1return weakestwhile True:# 使用函数找到最弱的敌人:weakestShaman = findWeakestEnemy()# 如果这里是那个最弱的敌人:if weakestShaman:# 攻击它!hero.attack(weakestShaman)

克隆冲突

请开发你自己的想象,尽可能多的使用技能,这里仅简单的举例示例代码。

# 你需要好策略来赢得这关。
# 你的克隆体将会拥有和你一样的装备!
# 但是,他们不大会使用特殊技能。
while True:weakEnemy = NoneweakHealth = 9999index = 0enemies = hero.findEnemies()while index < len(enemies):enemy = enemies[index]if enemy.health < weakHealth:weakEnemy = enemyweakHealth = enemy.healthindex += 1if weakEnemy and weakEnemy.health > 0:if hero.isReady("cleave"):hero.cleave(weakEnemy)else:hero.attack(weakEnemy)if hero.health < hero.maxHealth / 4:hero.moveXY(63, 51)hero.moveXY(63, 82)

好,到这里我们SARVEN沙漠所有的基础关卡就完事了。目前还剩余挑战关卡,需要大家去动动脑筋自行处理了。

剩余挑战关卡记录(十关):
神圣雕像;Sarven斗殴;
金色幻影;Sarven总数;苦痛之土;
重重试炼;Sarven的宝藏;Sarven围困;士兵、食人魔和农民;守门员

前面我们说过,当我们完成所有关卡的内容后在来看挑战关卡,你会认为挑战关卡也不过如此。

congratulation,你已经完成了第三章所有内容的学习,已经可以更进一步去第四章了。后面的内容更加的深入,而且会有更新的东西出现。

大家不要灰心,在第三章中,相信大家会遇到很多的困难,不要紧,我们多加练习,多加坚持!!!不会的内容我们练他3遍,不行就5遍!!在不行就10遍!!!!!孰能生巧!~~

加油!!!!

CodeCombat代码全记录(Python学习利器)--SARVEN沙漠(第三章)代码10相关推荐

  1. python实验指导书答案函数代码复用_#Python学习笔记(5)函数和代码重用,复用

    七段数码管绘制 绘制单段数码管 def drawLine(draw): turtle.pendown() if draw else turtle.penup() #将绘制一条线定义为一个基本函数, 参 ...

  2. 读书笔记之《重构》第三章—代码的坏味道

    第三章 代码的坏味道 这一章告诉我们,什么样的代码需要去重构,该用什么方法.寻找代码的坏味道,就是从代码中找出特定的结构,这些结构指出重构的可能性.寻找这些结构,需要学会判断,判断一个类里面有多少实例 ...

  3. CodeCombat代码全记录(Python学习利器)--边地森林(第二章)代码1-5一总结

    由于边地森林章节内容较多(覆盖了很多的python的知识),为了知识能够及时的复习,我们进行每40关复习下前面的关卡学习的内容. 文章目录 由于边地森林章节内容较多(覆盖了很多的python的知识), ...

  4. CodeCombat代码全记录(Python学习利器)--安息之云山峰(第四章)代码1

    我们已经有了前三章的基础了,到了第四章,你会发现提示少之又少了.这时,我们大都要靠自己了!!!加油!!如果你没有思路,请仔细看下装备的说明,毕竟到了这关,你需要购买好多其他的新装备,而新装备中存在了新 ...

  5. CodeCombat代码全记录(Python学习利器)--边地森林(第二章)代码15

    小心陷阱 这里我没有使用技能,你可以编写使用技能来攻击敌人 # 如果你试图攻击一个远处的敌人,你的英雄会忽略掉所有的旗子而朝它冲过去. # 你需要确保你只攻击靠近自己的敌人!while True:fl ...

  6. CodeCombat代码全记录(Python学习利器)--Kithgard地牢代码2

    函数使用方法说明:大家可能看完第一节的内容会有些疑惑,那我们使用的方法是来自于哪里呢,这里截图说明下,如果大家有不明白方法如何调用的,那可以看到如下菜单,我们只需要点击函数列内的方法,即可查看此方法使 ...

  7. github怎么搜索开源的代码_5.2.PYTHON开发利器之使用VS Code+GitHub进行python开源项目开发...

    上一节介绍了使用vscode+Git进行python程序版本控制,详见5.1.PYTHON开发利器之使用VS Code+Git进行python程序版本控制 0.前言 GitHub是目前最大的开源代码托 ...

  8. 整理了史上最全的 Python 学习资料无偿送给大家,PDF 电子书大合集(免费)

    Python有多火就不用说了,之前也零散的分享过一些Python学习开发资料. 本次将分享Python学习资料合集.合集哦,你品,你细品! 在分享之前,还是要啰嗦一下,不然文章字数太少,不太好看. 下 ...

  9. 一份超全的Python学习资料汇总

    一.学习Python必备技能图谱 二.0基础如何系统学习Python? 一.Python的普及入门 1.1 Python入门学习须知和书本配套学习建议 1.2 Python简史 1.3 Python的 ...

最新文章

  1. Activiti 笔记
  2. 人脸检测发展:从VJ到深度学习(下)
  3. C#多线程lock解决数据同步
  4. P2764 最小路径覆盖问题(网络流)
  5. 解压的mysql_10分钟教你解决安装解压版mysql出现的各种问题
  6. 三流面试问技术,二流面试问平台,一流面试……
  7. 【实习生笔试面试题】2013年搜狐SOHU实习生技术笔试题
  8. 把文件放在Linux内存里
  9. PDF粘贴到word的英文字母的间距很宽,很奇怪
  10. yum 报错:Another app is currently holding the yum lock; waiting for it to exit......
  11. 十分钟学会如何用Python处理CSV文件
  12. 数据结构几类排序的总结和完整代码 待续。。
  13. 关于创业公司初期的股份
  14. Python-自动化测试之接口基础
  15. sqlite如何在android上编译,如何在Android中使用SQLITE中的准备语句?
  16. idea查看java文件编码_Intellij Idea编译项目下的.java文件时的编码问题
  17. CC2540的手机HTML5,实测对比CC2540 BTool和nRF Connect在nRF52840 Dongle的BTool测试
  18. ibm tivoli_Tivoli Identity Manager中的角色重新认证
  19. [NAKED-ART] 05-01comp NO.00151 淑女の情景 [209P474.97M]
  20. Java画布的简化,保存迭代递归画图

热门文章

  1. 2021年中国CRM市场规模及市场格局分析:市场规模达156亿元[图]
  2. java 多线程重温
  3. noip题库 —— 4.7反质数
  4. 这不是结束,而是另一次重逢的开始
  5. 国家高新技术企业认定知识产权这样拿高分
  6. JMeter性能测试,入门到入土
  7. 设计一款免费游戏的关键设计原则
  8. C++ 0X学习 (1)
  9. 免费edu邮箱申请注册地址
  10. UIWebView、UITextView 和UILable 设置行间距