APP下载

编程解不开僵局?“条件判断”来帮忙

2019-09-10

电脑报 2019年9期
关键词:关卡分支代码

数橙科学的Python课程包含了极客战记,想学习的同学可以直接添加数橙公众号咨询老师。本章森林地牢里的关卡主要是偏向锻炼用户的基本语法结构和计算机思维,让大家熟悉极客战记的操作与代码的使用。来到了森林,关卡将会变得更多更难,同样,到了森林,大家就正式开始接触编程的几大重要知识点:条件判断、运算符、函数、对象属性。

一、边地僵局关卡简介

邊地僵局(图1)可以说是被提问次数最多的关卡之一,关卡涉及的编程知识是条件判断与函数的运用,其实难度并不高,本关的过关代码甚至与上一关一模一样,但在之前许多同学常常为了过关速度,只是填了代码就走,并没有理解代码的作用,导致再遇到一样的代码内容时就不懂得如何填写了。

如果你在这一关中卡关了,那么你或许该好好反省一下自己的学习方式了:游戏上下文的代码是否都有认真阅读?填写完代码后是否理解各代码的作用?

二、思路讲解

与往常的其他关卡一样,本关也是直接按照注释(图2)提示填补代码即可。根据第7行注释提示的if语句,还有第11行的else,我们能够快速地分析出,这是一段双分支判断语句(if-else)。

知识点在于双分支判断语句(if-else),它的代码格式为(图3):

if 条件:

代码语句1

else:

代码语句2

它是一个双分支语句,你可以理解成一个岔路口,有两条路供你前行。如果if后的条件满足,则执行if代码块下的代码语句1如果不满足,则执行else代码块下的代码语句2。代码块的概念我们上次在讲解关卡“迷失在书库”时有讲解过。

此时我们已经知道关卡这里是要我们填写一个双分支语句,那么条件和对应的语句呢?

对于条件,第7七行的注释是(图4):使用isReady语句来检查“cleave”。isReady是什么?这是我们在关卡“森林劈砍者中”接触到的新函数:

如果不了解它的使用,你可以在中间的函数栏中找到它(图5),点击查看它的介绍:它的作用是检查一个动作是否可以使用,在“森林劈砍者”中,它是作为if后的条件来使用的,因为它是一个有返回值的函数。

三、什么是返回值

返回值是什么?我来问大家一个问题,hero.attack(enemy)和hero.findNearestEnemy(),在使用的时候有什么区别?hero.attack()函数,括号内必须要有东西,而hero.findNearestEnemy()则不用。

并且hero.attack(),大家明显可以看到它是一个动作,执行完以后英雄会进行攻击。而hero.findNearestEnemy()使用完以后,似乎什么也没有发现,且必须这么使用,一定要用在变量的赋值里。

这是因为它也是一个有返回值的函数,大家对它已经十分熟悉了,知道它的作用是找到最近的一个敌人,把它的名字赋入变量之中。它的返回值,就是敌人的名字。因此必须要用一个变量来承接它的返回值。

hero.isReady()也是如此,它用来检查一个动作是否可以使用,是否——返回的是布尔型的返回值。布尔型就是:0和1,True和False。看起来有点难懂,直接翻译来说,真和假,是和否,就是布尔型。

等于这个函数返回的结果是,检查的动作 可以使用 或 不可以使用。所以可以直接放在if后面,作为条件来使用。当然你使用变量来承接也是一样的。知道了这两个知识点以后,此时的过关思路已非常清晰了:编写一个双分支语句,当劈斩准备好了,执行劈斩,劈斩没准备好,直接攻击。通关代码如图6。

猜你喜欢

关卡分支代码
电塔岛历险
疯狂冒险岛
基于git工具的多分支并行开发上线流程
用“分散数论”对“哥德巴赫猜想”的初等证明
含有二阶幂零鞍点的双同宿环附近的极限环分支
神秘的代码
一周机构净增(减)仓股前20名
重要股东二级市场增、减持明细
近期连续上涨7天以上的股
时空穿梭