14. 随机性

14.1 目标

  • 学习如何使用 rand 命令作出随机决定.
  • 学习模拟随机过程.

Karel可以通过 rand 命令作出随机决定,并且等概率地返回 TrueFalse . 通常使用方法如下:

if rand
  do_something
else
  do_something_else

14.2 利用随机性搜索整个迷宫

作为第一个例子,这里有一个简短的程序使Karel在迷宫中随机游走,寻找宝石:

# This is a simple way to
# create an infinite loop:
while True
  # Make a random number of steps forward:
  while rand
    if not wall
      go
    if gem
      get

  # Turn either right or left:
  if rand
    right
  else
    left

过一些时候(也许很长),机器人可以访问到所有宝石并捡起它们! 实际上这个程序是无限循环,因此需要你亲自按红色按钮来终止它.