小赖子的英国生活和资讯

LOGO 海龟作画 系列二 之定义个过程来 say Hello, World

阅读 桌面完整版

上次说到, LOGO语言几个最基本的命令, 就是前进FD后退BK向左转LT向右转RT. 参数都是可以支持负数的, 也就是说 FD 100 相当于 BK -100 (向前走100步等于向后退 负的100步).

今天讲的就是过程, 也就是我们编程语言里的函数. 在LOGO语言里定义过程的语法如下(LOGO语言中用分号开始定义行注释, 这个和汇编语言一样):

TO 过程名 :参数1  :参数2
  ; 过程的代码
END

参数是可选的, 比如:

TO SQUARE
    REPEAT 4 [FD 100 RT 90]
END

定义了一个画边长为100的正方形, 我们调用的时候只需要 SQUARE 就可以了. 加入参数后就比较灵活, 可以指定任意边长, 比如

TO SQUARE :L
  REPEAT 4 [FD :L RT 90]
END

比如调用的时候我们可以这么用:

SQUARE 100  ; 画一个边长为100的正方形
SQUARE 50    ; 接着画一个边长为50的正方形

效果如下:

logo-2-rectangles

讲到这里, 我觉得才可以入门了, 每种程序总要来秀一段Hello, World, 在LOGO语言里, 我们就用海龟把 Hello, World 画出来.

# hello, world
to helloworld
 hideturtle
 fd 20 left 180
 fd 40 left 180
 fd 20 right 90
 fd 20 left 90
 fd 20 left 180
 fd 40 left 90
 fd 20 left 90
 fd 20 right 90
 fd 20 right 90
 fd 10 right 90
 fd 20 left 90
 fd 10 left 90
 fd 30 left 90
 fd 40 left 180
 fd 40 left 90
 fd 20 left 90
 fd 40 left 180
 fd 40 left 90
 fd 40 left 90
 fd 20 left 90
 fd 20 left 90
 fd 20 left 90
 fd 60 left 90
 fd 40 left 180
 fd 40 left 90
 fd 20 left 90
 fd 20 left 180
 fd 20 left 90
 fd 20 left 90
 fd 40 left 180
 fd 40 left 90
 fd 40 left 90
 fd 20 left 90
 fd 20 left 90
 fd 20 left 90
 fd 40 left 90
 fd 20 right 90
 fd 20 right 90
 fd 5  left 90  
 fd 5  left 90  
 fd 25 left 180
 fd 40 left 90
 fd 40 left 90
 fd 20 left 90
 fd 20 left 90
 fd 20 left 90
 fd 20 left 90
 fd 40 left 180
 fd 40
end

lt 90 pu fd 200 pd rt 90 helloworld 

效果如下(海龟一气呵成要累死了都):

logo-hello-world

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

LOGO 海龟作图系列教程

强烈推荐

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

阅读 桌面完整版
Exit mobile version