Skilpadder i Python
TurteLineUp - nivå 1
Vi skal nå bruke turtle til å lage et bilde av en lagoppstilling til et fotballag. Du har sikkert sett et slikt bilde på tv’en mange ganger, men nå skal vi altså tegne et selv. Som vanlig i programmering, så skal vi dele inn denne oppgaven i mindre problemer, og vi starter med å tegne en fotballdrakt. Dette skal altså bli en funksjon som tegner selve drakta, og vi kan selv bestemme farge på drakta, navn på spilleren og nummeret som skal stå på drakta.
Før du går igang, bør du trykke på bildet til høyre, og få opp et bilde som viser hvilke koordinater som jeg benytter meg av i koden. Du kan selvsagt benytte helt andre koordinater, men husk at vi må bruke relative referanser når vi tegner, og ikke absolutte koordinater. Dette fordi vi skal kunne endre skala på drakten, og tegne drakten så stor som vi selv vil.
Eksempel på koden ligger under, med en video som forklarer fremgangsmåten.
# Konstanter---------------------------
WIDTH, HEIGHT = 600, 600
#--------------------------------------
import turtle as tu
main = tu.Screen()
main.setup(WIDTH, HEIGHT)
def tegne_drakt(skala, farge, navn, nummer, skriftfarge, pos):
t = tu.Turtle()
t.penup()
t.goto(pos)
t.speed(0)
t.right(90)
t.forward(50 * skala)
t.left(90)
t.backward(30 * skala)
t.pendown()
t.fillcolor(farge)
t.begin_fill()
t.forward(60 * skala)
t.left(90)
t.forward(80 * skala)
t.right(135)
t.forward(14.14 * skala)
t.left(90)
t.forward(14.14 * skala)
t.left(90)
t.forward(28.28 * skala)
t.left(45)
t.forward(60 * skala)
t.left(45)
t.forward(28.28 * skala)
t.left(90)
t.forward(14.14 * skala)
t.left(90)
t.forward(14.14 * skala)
t.right(135)
t.forward(80 * skala)
t.end_fill()
t.penup()
t.left(90)
t.forward(30 * skala)
t.left(90)
t.forward(30 * skala)
t.right(90)
t.color(skriftfarge)
t.write(nummer, align = "center", font = ("Arial", 30 * skala, "bold"))
t.left(90)
t.forward(50 * skala)
t.right(90)
t.write(navn, align = "center", font = ("Arial", 10 * skala, "bold"))
t.right(90)
t.forward(30 * skala)
t.left(90)
t.hideturtle()
tegne_drakt(2, "red", "Ødegård", "8", "white", (-150,150))
main.mainloop()
TurtleLineUp - nivå 2
Nå har vi laget en funksjon som tegner drakt med navn og nummer. Vi skal nå tegne en bane og plassere 11 drakter slik at vi får en fin lagoppstilling.
På bildet til høyre finner du et forslag til koordinater som kan benyttes dersom vinduet som er satt opp er 800×800 stort.
Under finner du forslag til kode, samt en video som forklarer fremgangsmåte
DigitAbel – for dypere læring