作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段聲明。
今天看到一個問卷調查,是問第一門學習的計算機語言是什么。本身想寫QBasic,忽然想起曾經學習機時代的LOGO語言,以及看了很久的小烏龜。對啊,這才算是自己接觸的第一門語言。
LOGO語言是為教育兒童編程開發的,所以語法很簡單。它基於LISP,還附加有一個海龜繪圖系統(Turtle Graphic)。我們通過編寫的程序,可以控制屏幕上的小海龜的移動,並在畫面上留下行動的軌跡。你可以用LOGO語言畫出一幅不錯的畫來。
於是在Ubuntu下搜索,找到KTurtle,是LOGO的一個變體。它的語法是面向過程的,類似於C,支持數學和邏輯運算,可以實現循環 (for)或者選擇 (if)。常見的命令包括forward, backward, turnleft, turnright,用於控制小海龜的前進后退和轉向。另外也可以用ask和print來輸入輸出。變量用$a的形式表示。在繪圖過程中,小海龜不斷移動,同時左側也會用黃色標明運行到哪一行了,非常有趣。一句話來形容,麻雀雖小,五臟俱齊。
KTurtle界面
你可以通過它的幫助菜單(需要安裝)來查詢具體的命令。
幫助菜單
畫房子:
# 該例來自 http://banajim.myweb.port.ac.uk/recreation/logoscripts # 畫房子
reset # 清空畫面
penup # 抬起筆,開始不留下痕跡
forward 50 pendown # 放下筆,開始留下痕跡
pw 2 # penwidth,線條粗細 go 200, 200 # 前往坐標點
# 房子主體
turnleft 90 # 左轉90度
forward 100 # 前進100像素
turnright 90 forward 100 turnleft 90 forward 30 turnright 140 forward 105 turnright 80 forward 105 turnright 140 forward 30 turnleft 90 forward 100
# 窗戶
go 120, 90 turnleft 90 forward 60 turnleft 90 repeat 90 { forward 1.05 turnleft 2 } # 窗戶中線
go 150, 90 turnright 180 forward 30
# 窗戶對角線
tr 45 # turnright的簡寫
go 135, 77 forward 10 go 135, 82 forward 10 go 160, 79 forward 10 go 160, 84 forward 10 tl 45
# 門
go 120,200 forward 50 tr 90 forward 30 tr 90 forward 50
# 門把手
go 145, 175 repeat 24 { # 循環24次
forward 1 tr 15 } # 窗戶
go 160,140 tr 180 forward 25 tr 90 forward 25 tr 90 forward 25 tr 90 forward 25 tr 90
# 窗戶中線
go 172.5,140 forward 25 tr 90 go 160,127.5 forward 25
# 窗戶對角線 # pw 1
tl 45 go 164, 134 forward 5 go 164, 138 forward 5 go 177, 121 forward 5 go 177, 125 forward 5 tr 45 go 230,150
再加上一個畫螺旋線:
reset for $x = 1 to 36 { repeat 72 { forward 4 turnright 5 } penup turnright 10 forward 2 pendown } go 0, 0
還可以繼續開發出更多的圖形。如果你數學不錯,甚至可以寫一個分形的繪圖 (只不過速度真的很慢很慢)。
你准備好把你的孩子培養成為碼農了嗎?