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

4300f68350ab007dfc8072b6a18e372c.png
本栏目为极客战记关卡通关讲解栏目,将会从地牢-森林-沙漠-山峰-冰川,按用户的正常过关顺序,挑出难度较大或有教学意义的关卡进行讲解,长期更新。

森林

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

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

关卡:边地之叉

c1cedfe7aa28b38ce17c22d93f335728.png
关卡图片
  • 关卡地址:
极客战记:森林 - 边地之叉 - 学编程,用玩的!​codecombat.163.com
27c26db987a8ed20376801ee6c82e5c2.png

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

  • 通关展示:

5fa64248e196a48a1778f42fd707640d.gif
  • 思路讲解:

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

  1. 现有的代码是在让英雄在干什么?
  2. 游戏是为什么失败的
  3. 那么我们应该怎么做?

74ee613c4b7dd98c64a84b17b8ac512e.gif

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

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

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

  1. 理解现有代码
  2. 对现有代码略作改动,需要实现的功能是:巡逻保卫下方村民安全。

9dfbfa2bdb46bed208b8211b58bc3fbd.png

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

知识点:函数

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

cc15aa512321cb1072e2905f98f22bb8.png

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

aca1fb75c102ae7c22ef71b19811075e.png

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

创建函数的格式如下:

def 

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

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

调用函数的格式则是:

函数名()

十分简单。

函数的作用:

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

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

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

9dfbfa2bdb46bed208b8211b58bc3fbd.png

就像图中的函数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,并说“你好!”

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

9dfbfa2bdb46bed208b8211b58bc3fbd.png

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

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

  1. 移动到下方X标记处。
  2. 到达下方后,寻找最近的敌人
  3. 使用checkAndAttack()函数攻击下方新找到的敌人
  • 通关代码:

28584919cd9d3d63e699ec24381f3db0.png

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


地牢关卡通关教程:

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

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

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

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

森林关卡通关教程:

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值