这个例子中,需要两个变量,分别记录宝石和开关的数量。由于有了两个变量,需要判断2个变量的值,去做不同的动作,难度顿时增加了不少。
首先我们需要创建两个变量:
一个记录收集宝石的数量:numberOfGem
一个记录打开开关的数量:numberOfTog
如果numberOfGem<3,就要继续收集宝石
如果numberOfTog<4,就要继续打开开关
那么我们先来定义一个转向前进的函数turnAndMove():
if 前方受阻&&左方受阻:右转,前进;
esle if 前方受阻&&右方受阻:左转,前进:
esle :前进。
到这里,跟我们之前学的内容还没有什么区别,下面是写循环代码了,难度就有了。
首先是while循环的条件:
当宝石的数量<3 或者 打开开关的数量 <4 的时候,都要继续循序执行下去。
然后是循环内的第一句,转向前进,这个没有问题,好理解。
往前走了一步后,就需要判断了:
如果是宝石,并且收集宝石的数量 < 3,那么需要收集宝石,宝石的数量加1。
if isOnGem && numberOfGem <3{
收集宝石
numberOfGem=numberOfGem+1
}
如果是关闭的开关,并且打开开关的数量<4,那么就打开开关,打开开关数量加1。
else if isOnClosedSwitch && numberOfTog<4 {
打开开关
numberOfTog=numberOfTog+1
}