Turtle

之前說過 Modules 模組是別的地方來的 code,用 import statement 來讓程式知道我們需要使用它

現在來建立第一個 python UI 吧

想像我們要做一個像賭賽馬的遊戲,只是變成賭烏龜,那要做這個需要讓程式按照什麼樣的步驟跑呢?

程式設計師會說
  1. import 我們會需要的 module
  2. 創造一個畫面(畢竟看得到才能賭嘛
  3. 創造兩隻烏龜(要更多也可以
  4. 讓烏龜到起跑線
  5. 讓烏龜向前跑

這些步驟只是大綱,但他們就是我們程式的架構

有了架構後,就要來寫囉
我們要用的 Module 叫 Turtle,是一個初階的 python 產生界面的好工具
documentation 在這

線上版

介紹幾個常用的 function 與 import 後即可使用的 type 和 object

#1. import 我們會需要的 module
import turtle 

#2. 創造一個畫面
window = turtle.Screen() 
window.bgcolor('lightblue')

window.exitonclick() #這一行要在整個程式的最後

turtle.Screen() 就像 random.randrange()一樣,是對著被 import 進來的 turtleScreen()這個 function
可以猜到地,Screen()這個 function 會回傳一個 screen object,然後被我們裝到 window 這個 variable 裡

接著,對我們的 screen 也就是 window 這一個 object 進行調整,我們呼叫了 .bgcolor() 這個 function。
這個 function 顧名思義跟背景顏色有關,我們一起丟進去的 perameter lightblue 就變成指定的結果

設定完顯示的界面後,我們來到第三步,寫烏龜

# 3. 創造兩隻烏龜
michelangelo = turtle.Turtle()    
leonardo = turtle.Turtle()

turtle.Turtle() 看來會回傳一個 turtle object,被我們裝進兩隻忍者龜的名字裡

接下來對烏龜們做點微調

michelangelo.color('orange')
leonardo.color('blue')
michelangelo.shape('turtle')
leonardo.shape('turtle')

初始設定好之後我們進入第四步

#4. 讓烏龜到起跑線
michelangelo.up()
leonardo.up()
michelangelo.goto(-100,20)
leonardo.goto(-100,-20)

現在執行程式就會看到兩隻烏龜囉

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

前兩行可以試著 comment 掉,看看少了這兩行會發生什麼事
會發現烏龜在移動的過程留下了軌跡(所以烏龜也可以說是一種筆(?

goto function 應該很直覺,就是去哪裡
從上述的結果可以推測出 turtle 這個 module 的 screen 的座標系統的 (0, 0)在畫面正中間

接著,就可以寫出讓兩隻烏龜向前跑的程式囉!

tech stack (我們背包裡裝有可以用的工具
  • import random 夠隨機公平了吧
  • import time / time.sleep(秒) 相信我你會需要的
  • 烏龜.goto(x, y) 烏龜瞬間移動
  • 烏龜.clear() 擦掉烏龜的軌跡
  • 烏龜.forward(number) 烏龜向前走
  • 烏龜.right(角度) / 烏龜.left(角度) 烏龜轉彎
  • 烏龜.up() / 烏龜.down() 提起/放下畫筆
  • 想做更多事可以看 documentation 歐


除了這些小事,也試試讓烏龜畫正方形、正五邊形、正六邊形吧

btw 我大一時玩出的東西:

從此愛上程式