# Turtle 之前說過 Modules 模組是別的地方來的 code,用 `import` statement 來讓程式知道我們需要使用它 現在來建立第一個 python UI 吧 想像我們要做一個像賭賽馬的遊戲,只是變成賭烏龜,那要做這個需要讓程式按照什麼樣的步驟跑呢? :::spoiler 程式設計師會說 1. import 我們會需要的 module 2. 創造一個畫面(畢竟看得到才能賭嘛 3. 創造兩隻烏龜(要更多也可以 4. 讓烏龜到起跑線 5. 讓烏龜向前跑 ::: 這些步驟只是大綱,但他們就是我們程式的架構 有了架構後,就要來寫囉 我們要用的 Module 叫 Turtle,是一個初階的 python 產生界面的好工具 [documentation 在這](https://docs.python.org/3.9/library/turtle.html) ##### **[線上版](https://www.pythonsandbox.com/turtle)** 介紹幾個常用的 function 與 import 後即可使用的 type 和 object ``` python #1. import 我們會需要的 module import turtle #2. 創造一個畫面 window = turtle.Screen() window.bgcolor('lightblue') window.exitonclick() #這一行要在整個程式的最後 ``` `turtle.Screen()` 就像 `random.randrange()`一樣,是對著被 import 進來的 `turtle` 叫 `Screen()`這個 function 可以猜到地,`Screen()`這個 function 會回傳一個 screen object,然後被我們裝到 `window` 這個 variable 裡 接著,對我們的 screen 也就是 `window` 這一個 object 進行調整,我們呼叫了 `.bgcolor()` 這個 function。 這個 function 顧名思義跟背景顏色有關,我們一起丟進去的 perameter lightblue 就變成指定的結果 設定完顯示的界面後,我們來到第三步,寫烏龜 ``` python # 3. 創造兩隻烏龜 michelangelo = turtle.Turtle() leonardo = turtle.Turtle() ``` `turtle.Turtle()` 看來會回傳一個 turtle object,被我們裝進兩隻忍者龜的名字裡 接下來對烏龜們做點微調 ``` python michelangelo.color('orange') leonardo.color('blue') michelangelo.shape('turtle') leonardo.shape('turtle') ``` 初始設定好之後我們進入第四步 ``` python #4. 讓烏龜到起跑線 michelangelo.up() leonardo.up() michelangelo.goto(-100,20) leonardo.goto(-100,-20) ``` 現在執行程式就會看到兩隻烏龜囉  前兩行可以試著 comment 掉,看看少了這兩行會發生什麼事 會發現烏龜在移動的過程留下了軌跡(所以烏龜也可以說是一種筆(? 而 `goto` function 應該很直覺,就是去哪裡 從上述的結果可以推測出 turtle 這個 module 的 screen 的座標系統的 (0, 0)在畫面正中間 接著,就可以寫出讓兩隻烏龜向前跑的程式囉! :::spoiler tech stack (我們背包裡裝有可以用的工具 - `import random` 夠隨機公平了吧 - `import time / time.sleep(秒)` 相信我你會需要的 - `烏龜.goto(x, y)` 烏龜瞬間移動 - `烏龜.clear()` 擦掉烏龜的軌跡 - `烏龜.forward(number)` 烏龜向前走 - `烏龜.right(角度) / 烏龜.left(角度)` 烏龜轉彎 - `烏龜.up() / 烏龜.down()` 提起/放下畫筆 - 想做更多事可以看 documentation 歐 ::: <br> --- 除了這些小事,也試試讓烏龜畫正方形、正五邊形、正六邊形吧 :::spoiler btw 我大一時玩出的東西: 從此愛上程式  ::: <br></br> :::info [BACK](https://hackmd.io/@lhsueh1/python101) :::
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up