第41关

代码:

  1. # 注意,一些复杂的地形会让Dev消耗额外的能量,甚至导致死机
  2. # 在代码 for i in range 中,i是用于控制内部代码执行次数的变量
  3. # i的初始值是0,每执行一次for循环内部的代码,i就增大1
  4. # 我们可以借助这种特性来简化我们的代码
  5. # 例如:我们可以用i来表示Flyer的编号
  6. for i in[0,1,2] :
  7. Flyer[i].step(2)
  8. Dev.step(6)
  9. # 补全余下的代码,完成收集任务

解析:

使用列表完成此题。

第42关

代码:

  1. # 完成任务时,可以使用for循环来控制移动Flyer和Dev。
  2. # 在这种情况下,因为for循环不是“嵌套”的,所以我们不需要使用不同的变量,例如i和j。
  3. # 当使用多个非嵌套的for循环时,可以简单地使用相同的变量,例如下面代码中变量都使用i。
  4. for i in range(8):
  5. Flyer[i].step(2)
  6. Dev.step(2)
  7. Dev.turnRight()
  8. for i in range(3):
  9. Dev.step(5)
  10. Dev.turnLeft()
  11. Dev.step(-1)

参考视频

第43关

代码:

  1. # 还记得刚刚学到的知识吗?
  2. # 自己试着完成一下本关卡吧!
  3. for i in range(8):Flyer[i].step(2)
  4. Dev.step(2)
  5. Dev.turnRight()
  6. for i in range(3):
  7. Dev.step(5)
  8. Dev.turnLeft()
  9. Dev.step(-1)

参考视频

第44关

代码:

  1. #还可以使用for循环中的i变量来计算和代表每个飞板移动的步数。
  2. #可以通过使用i变量选择要移动的飞板,并且通过i + 1来计算飞板移动的步数
  3. #我们通过使用Flyer [i] .step(i + 1)做到这一点
  4. #与之前的关卡一样,变量i的初始值为0,并且每次迭代都增加1。
  5. #将代码Flyer [i] .step(i+1)在for循环中重复4次的方式相较于下面的代码更为简洁
  6. #Flyer [0] .step(1)
  7. #Flyer [1] .step(2)
  8. #Flyer [2] .step(3)
  9. #Flyer [3] .step(4)
  10. #应用for循环语句,用更短的代码完成收集任务
  11. for i in range(4):
  12. Flyer[i].step(i+1)
  13. Dev.step(8)

解析:

根据代码上方官方给出的注释提示进行解决。

第45关

第一次代码:

  1. # 警告:前有岐路!
  2. # 警告:前有歧路!
  3. # 警告:前有歧路!
  4. for i in range(4):Flyer[i].step(i+1)
  5. Dev.step(1)
  6. for i in range(4):
  7. Dev.step(8)
  8. Dev.turnRight()

PS

自行写出的代码能量耗尽,无法行走,只好看视频了。

第二次代码:

  1. # 警告:前有岐路!
  2. # 警告:前有歧路!
  3. # 警告:前有歧路!
  4. for i in range(4):Flyer[i].step(i+2)
  5. for i in range(4):
  6. Dev.step(4)
  7. Dev.turnLeft()
  8. Dev.step(1)
  9. Dev.turnRight()
  10. Dev.step(5)
  11. Dev.turnRight()

解析:

通过观看视频后,写出了一种能量不会很快耗尽的代码(出题官越来越…了,请自行脑补)

第46关

代码:

  1. # 凭借自己的力量,完成关卡吧!
  2. for i in range(4):Flyer[i].step(i+1)
  3. for i in range(4):
  4. Dev.turnLeft()
  5. Dev.step(1)
  6. Dev.turnRight()
  7. Dev.step(2)

我了个去,人家循环4次就可以,我非要循环5次(笑哭)3星

第47关

代码:

  1. #与我们使用(i + 1)的方式类似,我们也可以使用变量i来执行其他数学运算,例如乘法。
  2. #在这一关中,我们将使用Flyer [i] .step(2 *(i + 1))来计算飞板需要移动的距离。 就像之前一样,第一次执行此代码时,变量i的值为0,这意味着它将执行命令Flyer [0] .step(2 *(0 + 1))。
  3. #完成以下代码,完成收集任务。
  4. for i in range(3) :
  5. Flyer[i].step(2*(i+1))
  6. Dev.step(2)
  7. Dev.turnLeft()
  8. Dev.step(2)
  9. Dev.turnRight()
  10. Dev.step(2)

解析:

可以将Dev的走动与Flyer整合到一个for里(3星)

第48关

代码:

  1. #本关卡中,我们使用变量i的语句将使用乘法和加法来计算Flyer应当移动的距离。
  2. #完成以下代码以完成任务。
  3. for i in range(4):Flyer[i].step(2*i+1)
  4. for i in range(2):
  5. Dev.step(-3)
  6. Dev.turnRight()
  7. Dev.step(-3)
  8. Dev.turnLeft()

从这几关来看,一定要数好循环的次数(否则就是哭笑不得了)

第49关

代码:

  1. # 补充下面的代码,完成收集任务吧!
  2. for i in range(4):
  3. Spaceship.step(i+1)
  4. Flyer[i].step(4-i)
  5. Dev.step(-(2+i))
  6. Dev.step(2+i)

看5月17日回放得到代码成功3星

第50关

代码:

  1. # 尝试使用更多的四则运算来得到我们想要的数字吧!
  2. for i in range(4):
  3. Spaceship.step(i+1)
  4. Flyer[i].step(5-i)
  5. Dev.step(2+i)
  6. Dev.step(-(2+i))

解析:

由于ICode非常反人类的报错机制(flyer没法走了竟然在dev身上报错),所以好几次都失败了,把49关的代码稍加修改,就可以3星了。