Turtle mooduli kasutamine

Kilpkonnagraafika kasutamiseks vajalikud funktsioonid asuvad pythoni turtle moodulis. Mooduli lisamiseks enda koodile piisab, kui lisame kõige algusesse rea import turtle. Mooduli kohta saab täpsemalt lugeda siit Moodul.

Selleks, et kilpkonn näeks ka välja nagu kilpkonn, kasutame funktsiooni shape, ning liigutamiseks funktsiooni forward. Kuna need funktsioonid asuvad moodulis, peame ka eraldi täpsustama, et tahame kasutada just turtle mooduli funktsioone.

import turtle  # import turtle module, allowing us to use turtle commands

turtle.shape("turtle")  # make the cursor look like a turtle
turtle.forward(15)  # tell the turtle to move 15px in the direction it is facing

Kui nüüd kood käima panna, siis ilmselt märkate, et ekraan ilmub korraks nähtavale ning kaob kohe ära. Mis võiks olla selle põhjuseks?

Kui viimane käsk jõuab lõpule, lõpetab programm oma töö ning aken pannakse kinni. Kui soovime akent kauem lahti hoida, peame andma selleks eraldi käsu.

turtle.done()  # drawing is finished, do not close window

Proovime joonistada mõne lihtsa kujundi, näiteks ruudu. Seda saab teha mitmel erineval viisil.

turtle.forward(200)
turtle.left(90)
turtle.forward(200)
turtle.left(90)
turtle.forward(200)
turtle.left(90)
turtle.forward(200)

Panime iga käsu eraldi kirja ning kilpkonna teekonnale jääb tõepoolest maha ilus ruut. Koodi vaadates näeme aga, et oleme ennast korranud. Kuigi copy-paste aitab olukorra mugavamaks teha, võime siiski eeldada, et arvuti oskab ridu ka ise korrata. Meenutame, mida oleme esimestes tundides õppinud. Vihje For-tsükkel.

for i in range(4):
    turtle.forward(200)
    turtle.left(90)

Mida teha siis, kui tahame joonistada mitut erineva suurusega ruutu? Kõige mõistlikum oleks ruudu joonistamine teha eraldi funktsiooniks:

def draw_square(width):
    for i in range(4):
        turtle.forward(width)
        turtle.left(90)

Nüüd võime enda funktsiooni välja kutsuda iga kord, kui tahame joonistada ruutu. Rohkem infot funktsioonide kohta leiad siit Funktsiooni mõiste ja kasutamine.