天天看点

createprocess失败代码2_极客战记[森林]:边地之叉-通关代码及讲解

createprocess失败代码2_极客战记[森林]:边地之叉-通关代码及讲解
本栏目为极客战记关卡通关讲解栏目,将会从地牢-森林-沙漠-山峰-冰川,按用户的正常过关顺序,挑出难度较大或有教学意义的关卡进行讲解,长期更新。

森林

地牢里的关卡主要是偏向锻炼用户的基本语法结构和计算机思维,让大家熟悉极客战记的操作与代码的使用,来到了森林,关卡将会变得更多更难,同样,到了森林,大家就正式开始接触编程的几大重要知识点:

条件判断、运算符、函数、对象属性

关卡:边地之叉

createprocess失败代码2_极客战记[森林]:边地之叉-通关代码及讲解

关卡图片

  • 关卡地址:

极客战记:森林 - 边地之叉 - 学编程,用玩的!​codecombat.163.com

createprocess失败代码2_极客战记[森林]:边地之叉-通关代码及讲解

「边地之叉」这一关涉及的编程知识为:「函数」和 「参数」,大家需要理解函数及其参数是什么东西,究竟需要如何使用的,即可顺利过关。

  • 通关展示:
createprocess失败代码2_极客战记[森林]:边地之叉-通关代码及讲解
  • 思路讲解:

进入本关,刚开始如果你不太明白这一关需要英雄做什么,那么你可以直接点击运行按钮,来观察游戏过程,你需要找到两个要点:

  1. 现有的代码是在让英雄在干什么?
  2. 游戏是为什么失败的
  3. 那么我们应该怎么做?
createprocess失败代码2_极客战记[森林]:边地之叉-通关代码及讲解

这是在默认代码下的运行情况,可以知道:

  1. 默认代码的作用,就是让英雄循环往返与上方的两个点,上方的敌人一出现,就被英雄消灭了。
  2. 但英雄没有前往下方,导致下方的敌人击杀了村民,游戏失败。
  3. 因此我们可以照着现有的代码略作改动,增加一段攻击下方敌人的代码。

因此,此时的通关思路为:

  1. 理解现有代码
  2. 对现有代码略作改动,需要实现的功能是:巡逻保卫下方村民安全。
createprocess失败代码2_极客战记[森林]:边地之叉-通关代码及讲解

观察代码,在以往我们的代码都是仅有一个代码块,一个While True无限循环代码块包括了所有的运行代码块,而本关,除了While True代码块以外,还多了一块代码,它就是def函数代码块。

知识点:函数

函数是我们在上一关接触到的知识点,

createprocess失败代码2_极客战记[森林]:边地之叉-通关代码及讲解

在Python里,我们使用关键字 def 来定义一个函数:

createprocess失败代码2_极客战记[森林]:边地之叉-通关代码及讲解

关键字def是英文单词define的缩写,具有定义,明确的意思,我们创建一个函数,也叫

定义

一个函数。

创建函数的格式如下:
def 
           

可以看到,我们创建函数的时候,使用了冒号,为函数创建了一个单独的代码块。

如果不记得代码块的概念了,可以点击链接,回到地牢复习一下:极客战记[地牢]:迷失在书库-通关代码及讲解

调用函数的格式则是:
函数名()
           

十分简单。

函数的作用:

如果你有一段非常方便的代码,例如寻找敌人攻击敌人,那你要在每个可能有敌人的地方,都写一遍这一段代码,十分繁琐。

而函数,就是一个偷懒的工具,我们可以把它想象成一个机器人,我们在机器人的程序里(函数体内)写好代码,当我们需要使用这段代码时,呼叫机器人的名字(函数名加括号),就能叫出这机器人来帮忙,而不需要总是写一大串同样的代码了。

也因此,函数内的代码,它在没被调用时,是不会执行的。

createprocess失败代码2_极客战记[森林]:边地之叉-通关代码及讲解

就像图中的函数checkAndAttack,虽然它的代码在最上面,但它的代码不会被执行,而是直接跳过,当后面有需要调用函数时,才运行这一段代码。

了解了函数以后,我们再来了解一下参数

知识点:参数

我们刚刚说,函数就像一个机器人,代码写在机器人的程序里,因此我们可以这么理解,函数和其他的代码,它们是互不相关的,机器人的程序(函数)和正常运行的代码,是两个相互独立的程序。

因此,我们在正常运行的代码里写的一些变量,它们是不能直接使用到函数里的,因为它们是互不相关的两个程序。

而参数,就是帮我们把外界变量传入函数内的工具。 创建参数的方法:
def 函数名(参数名):
           

直接在函数名的括号内写上你要创建的参数名即可,你还可以创建不止一个参数:

def 函数名(参数名1,参数名2,参数名3……):
           

参数就是一个变量,它是专门用在函数里的,你可以提前写好它们各自要做的工作:

def Test(t1,t2):
    hero.attack(t1)
    hero.say(t2)
           

然后我们再按顺序,在调用的时候把我们的变量传入参数里:

def Test(t1,t2):
    hero.attack(t1)
    hero.say(t2)

enemy1 = hero.findNearestEnemy()
word = "你好!"
Test(enemy1,word)
           

Test(enemy1,word),就是把enemy1作为t1,word作为t2传入了Test函数里,这样此时执行Test函数的时候,英雄就是去攻击enemy1,并说“你好!”

明白了这两个知识点以后,我们再看到关卡里的代码:

createprocess失败代码2_极客战记[森林]:边地之叉-通关代码及讲解

此时我们就知道,上方一个代码块,是系统已经帮我们写好的攻击敌人,并回到中心点的代码块,无需修改。

那么我们以目前while True内的代码作为模板,写出攻击底部敌人的代码:

  1. 移动到下方X标记处。
  2. 到达下方后,寻找最近的敌人
  3. 使用checkAndAttack()函数攻击下方新找到的敌人
  • 通关代码:
createprocess失败代码2_极客战记[森林]:边地之叉-通关代码及讲解

以上便是森林关卡「边地之叉」的过关教学了~

地牢关卡通关教程:

  1. 极客战记[地牢]:祸之火焰-通关代码及讲解

2. 极客战记[地牢]:注释中的密语-通关代码及讲解

3. 极客战记[地牢]:迷失在书库-通关代码及讲解

4. 极客战记[地牢]:换个名字-通关代码及讲解

森林关卡通关教程:

  1. 极客战记[森林]:九颗宝石-通关代码及讲解

2. 极客战记[森林]:边地僵局-通关代码及讲解

3. 极客战记[森林]:发狂的矮人-通关代码及讲解

本栏目将会长期以正常顺序更新极客战记的关卡讲解,如果觉得我们的内容对你有用,有帮助的话,不妨点一下右上角的关注吧!~