Logo 是ㄧ種程式設計語言,在 1966 年由 Seymour Papert 和 Wally Feurzeig 所設計。這個程式語言內建一套海龜繪圖系統(Turtle Graphics),初學者或孩童可以透過向海龜傳送指令,直觀地學習程式執行的過程。我們常用海龜畫圖系統,搭配各種不同的顏色,畫出像是三角形、正方形,圓形等基礎圖形,進而透過更複雜的程式演算邏輯,畫出複雜又生動的圖案。
有個叫做 turtleSpaces 的 LOGO 語言教學網站,有興趣了解的學員,可以連到官網來了解這個特殊的程式語言。裡面有一個小雞過街的小遊戲,非常有趣。透過經典遊戲的編寫,讓使用者了解 LOGO 程式語言語法與如何移植經典遊戲。
https://turtlespaces.org/weblogo/player.html?pub=415&profile=
不過 LOGO 程式語言是前序式程式語言,與我們常用的中序式語言(C、Python)在語法上有很大的差異,需要花一些時間來學習。不過,目前有許多熱心的網友,將其中的海龜繪圖功能移植到許多平台上,像最近最熱門的 Python 語言,就有內建一個叫做 turtle 的海龜繪圖模組。
在 Python 語言的內建模組,就有一套類似海龜繪圖的模組功能,將海龜繪圖的大部份指令用Python 程式語言實做出來。您可以參考官方的說明手冊來了解 Python 版函數語法與相關範例。
官網手冊網址為: https://docs.python.org/zh-tw/3.10/library/turtle.html
您可以在終端機底下,執行 「python -m turtledemo」指令,就會叫出底下的應用程式。這個展示程式裡面有許多進階的範例,讓您更了解海龜繪圖的語法與函數,進而了解如何使用 Python 程式語言開發一個小型的視窗應用程式。
不過我們這次的課程是以微處理器使用的小龜繪圖教學為主,只先教大家基本的繪圖指令與繪製數學圖形。有興趣的學員可以再從補充資料與連結中,進一步學習。
小龜繪圖是經典的程式入門學習教材。使用者透過移動小龜與旋轉方向過程,畫出心中想要的圖形。可以透過這個過程,學習到基本程式運算、邏輯判斷與迴圈應用。也透過與設備互動除厝的過程,熟練空間移動與旋轉的動作,強化空間幾何的數學概念。
玩學機內建的小龜繪圖指令集只有七個基礎指令,再搭配其他的功能函數,也能達到海龜繪圖系統的大部份功能。我們來看看有內建那些指令吧。
這是最基本的操作,請務必練習與了解每行程式碼功能。
wb.cls()
wb.ttreset()
for count in range(4):
wb.ttgo(50)
wb.ttrot(90)
wb.cls()
wb.ttreset()
for count in range(5):
wb.ttgo(40)
wb.ttrot(72)
wb.cls()
wb.ttreset()
for count in range(5):
wb.ttgo(40)
wb.ttrot(144)
wb.cls()
wb.ttreset()
for count in range(30):
wb.ttgo(8)
wb.ttrot(12)
wb.cls()
wb.ttreset()
for count2 in range(3):
for count in range(4):
wb.ttgo(40)
wb.ttrot(90)
wb.ttrot(120)
wb.cls()
wb.ttreset()
for count2 in range(20):
wb.ttcolor(wb.rand(65536))
for count in range(30):
wb.ttgo(6)
wb.ttrot(12)
wb.ttrot(18)
沒想到您已經學會寫了這麼多程式!很有趣吧,一台小小的機器就能畫出如此多的數學圖形。休息一下,明天我們再來學「鍵盤輸入值讀取與應用」。