中文程式語言之Z語言初嘗試 - ZLOGO 4
@TKT2016 開發的Z語言(ZLOGO是它的一個部分)是本人至今看到的唯一一個仍活躍開發的開源且比較完整的中文程式語言專案. 它的原始碼在TKT2016/ZLanguage3.
此文從使用者角度嘗試一下ZLOGO的功能, 並記錄一些過程中的發現.
首先上一個看完教程後自己寫的螺旋方塊演示. 原始碼附在最後.
以下是官網的說明:
LOGO語言創始於1968年,是美國國家科學基金會所資助的一項專案研究,在麻省理工學院(MIT)的人工智慧研究室完成。
ZLOGO是基於Z語言實現LOGO語言功能的程式設計軟體,用了中文易懂的語句代替原先LOGO語言難於記憶的命令,更方便學習者掌握。
官網上下載了ZLOGO4, 按照說明, 解壓後就可執行.
按照ZLOGO4教程, 逐步實驗.
第一個LOGO程式中, 有"左轉60度". 推測預設方向是朝上, 測試了一下"左轉0度", 的確如此. 推測"前進200"中的200指的是畫素數. 覺得教程中最好說明這些基本的預設要素(包括畫線的顏色, 粗細, 海龜行走速度等等).
在執行視窗開啟的情況下, 再次"執行"會開啟一個新的執行視窗.
程式碼縮排好像是不嚴格的. 即使每行開頭沒有縮排, 也照樣執行(後補: 經進一步測試, 過程的第一行允許開頭沒有空白, 但之後的行不允許). 當然它可以使程式碼更可讀.
在第二個"顯示隱藏"程式中, 逗號用來分割兩個語句:
前進50,隱藏
嘗試把它分成兩行:
前進50
隱藏
執行效果相同, 但發現兩個問題:
- IDE裡的Tab不等同於多個空格(5-6個空格之間)
- 如果"隱藏"之前沒有空格, 就會彈出"編譯資訊"視窗並報錯:
第4行,第3列錯誤:
不正確,應該是:
另外, 如果海龜越出了視窗, 比如"前進"太多, 好像執行視窗不能滾動, 或者最大化.
計算功能初步嘗試一些合法表示式沒有問題. 不過狠了一把試了"前進(2/0)", 好像就不顯示了, 也沒有報錯.
最後的過程部分, 才看到"過程體每一行程式必須以空格開頭,使程式的開始列必須大於過程名的列號。"這就解釋了上面的報錯. 建議將這個警示提到文件開頭, 而且反饋資訊最好明確一些.
學完教程之後, 試著參照p5js的一個演示程式, 寫了個簡單的方塊螺旋效果圖, 當然ZLOGO和p5js不是同類工具, 這裡只是參考演算法而已.
最大的感觸當然是過程沒有引數的痛苦, 原本螺旋演示裡只要定義一個過程就可以了. 暫時沒有在教程中看到這一功能. 如果已經支援, 期待原作者指正.
小結:
雖然距離實用尚有一點距離(本身也是測試版), 但瑕不掩瑜, 已有雛形. 除了過程引數之外, LOGO的經典功能已經具備. 非常期待改進版~~
附上"螺旋.zlogo"原始碼:
說明:畫螺旋
開始繪圖:
畫正方形5
畫正方形4
畫正方形3
畫正方形2
畫正方形1
畫正方形1:
設定畫筆顏色為白色
左轉(20/2)度,前進(20/2),左轉90度
設定畫筆顏色為紅色
前進(20/2),左轉90度
前進20,左轉90度
前進20,左轉90度
前進20,左轉90度
前進(20/2)
復位
畫正方形2:
設定畫筆顏色為白色
左轉(20*2/2)度,前進(20*2/2),左轉90度
設定畫筆顏色為紅色
前進(20*2/2),左轉90度
前進(20*2),左轉90度
前進(20*2),左轉90度
前進(20*2),左轉90度
前進(20*2/2)
復位
畫正方形3:
設定畫筆顏色為白色
左轉(20*3/2)度,前進(20*3/2),左轉90度
設定畫筆顏色為紅色
前進(20*3/2),左轉90度
前進(20*3),左轉90度
前進(20*3),左轉90度
前進(20*3),左轉90度
前進(20*3/2)
復位
畫正方形4:
設定畫筆顏色為白色
左轉(20*4/2)度,前進(20*4/2),左轉90度
設定畫筆顏色為紅色
前進(20*4/2),左轉90度
前進(20*4),左轉90度
前進(20*4),左轉90度
前進(20*4),左轉90度
前進(20*4/2)
復位
畫正方形5:
設定畫筆顏色為白色
左轉(20*5/2)度,前進(20*5/2),左轉90度
設定畫筆顏色為紅色
前進(20*5/2),左轉90度
前進(20*5),左轉90度
前進(20*5),左轉90度
前進(20*5),左轉90度
前進(20*5/2)
復位