小赖子的英国生活和资讯

LOGO 海龟作画 系列三 递归画一个国际象棋棋盘

阅读 桌面完整版

今天我们要来讲一讲递归. 递归就是函数自己调用自己, 我们可以定义一个过程, 然后这只海龟不停的画, 结束的时候再调用自身再继续画. 再次调用的时候参数变化了, 至到参数满足一定的条件则停止.

比如 下面定义的这个过程可以用来画一个实现的正方形.

TO FK :B
  IF :B>15 [STOP]  ; 如果边长大于15就停止
  REPEAT 4 [FD :B RT 90] ; Draw a square with side B 画一个长度为B的正方形
  FK :B+1  ;  Draw a square with side B+1 递归调用自己画一个长度为B+1的正方形
END

然后我们可以通过 调用 FK 15 来画一个空心的正方形, 这样的话, 通过不停的画空心实心(不断交错)则可以构成一个棋盘:

TO QP :Y
  IF :Y>4 [STOP]   
  REPEAT 4 [FK 15 FD 15 FK 1 FD 15] 
  RT 90 FD 30 RT 90
  REPEAT 4 [FK 15 FD 15 FK 1 FD 15]
  RT 180
  QP :Y+1
END

logo-chess-board

您可以使用我写的这个PHP-LOGO解释器来验证这段LOGO代码.

LOGO 海龟作图系列教程

英文: Draw a Chess Board using LOGO

强烈推荐

微信公众号: 小赖子的英国生活和资讯 JustYYUK

阅读 桌面完整版
Exit mobile version