如何通关Playgrounds 学习编程2 第3关 使值递增
1、解读给出的题目:
目标:递增变量来跟进已收集的宝石数量。
在上一项挑战中,如果你不知道关卡中宝石的数量,则不能设定1、2或3这样确切的值。你需要相对其当前值来增加变量的值。这种编程模式称为递增值。
递增值
var myNumber = 0
myNumber = myNumber + 1
这一关在你每次运行关卡时产生随机数量的宝石。你无法得知宝石是否位于特定位置,因而需要检查每个砖块。只要遇到宝石,你就需要收集它并将gemCounter的值递增1。
1赋予gemCounter初始值0。
2编写在每块砖.上检查宝石的代码。
3只要有宝石,则收集它并将gemCounter的值递增1。

2、理解示例:
因而需要检查每个砖块。只要遇到宝石,你就需要收集它并将gemCounter的值递增1。
这句话是关键,就是加一个判断,每走一步都要检查一个砖块,如果遇到宝石,就收集,并把gemCounter 数值增加1。
同时还教会你怎么将gemCounter 增加1,并在提示中给出了代码

3、设置初始值为0,我们可以考虑不去数格子,用无限循环while 的语法让其自动执行。
1)循环的执行步骤,需要完成任务:a)往前走一格;b)判断是否有宝石;c)判断是否要转弯;d)判断是否走到了尽头
b)判断是否有宝石,有则捡起,没有则不动作
c)判断是否要转弯,(判据:前面挡住了)有则右转,没有则不动作
d)判断是否走到了尽头,(判据:前面挡住了 && 左右都挡住了)是则break(跳出循环),没有则不动作继续循环

4、根据上述思路,给出代码:
while true {
if isBlocked {
turnRight()
}
moveForward()
if isOnGem {
collectGem()
gemCounter = gemCounter + 1
}
if isBlockedLeft && isBlockedRight && isBlocked {
break
}
}

5、执行代码后,给出通关提示:
你正成长为一名变量达人!
通过将条件代码、循环和变量组合在一起,为一些尤为复杂的App构建了基础。接下来,你将使用变量来收集特定数量的宝石。