02 Učíme korytnačku nové príkazy

Úloha (Spolu na tabuľu): Nakresli obrázok šípky pomocou korytnačích príkazov.

Otázky:

Príklad riešenia:


from turtle import *

fd(100)
rt(45)
bk(-50)
fd(50)
lt(90)
bk(-50)
fd(50)
rt(45)

Táto skupina príkazov nakreslí šípku. Mohli by sme ho aj nejako nazvať, napr. sipka, nech sa nám to ľahšie pamätá.

Toto programátori robia dosť často, že si pomenujú nejaký blok príkazov, podľa toho, čo robí.

V Pythone to zapíšeme takto:

def sipka():
    fd(100)
    rt(45)
    bk(-50)
    fd(50)
    lt(90)
    bk(-50)
    fd(50)
    rt(45)

Týmto spôsobom sme vlastne definovali, ako sa kreslí šípka. Kedykoľvek počas programu budeme chcieť nakresliť šípku, stačí len napísať sipka().

Otázka: Čo nakreslí tento program?

sipka()
sipka()
sipka()

Odpoveď: Nakreslí stromček, zložený z troch šipiek. (Prečo práve stromček? Prečo je naležato? Ako ho dáme nastojato?)

V programe sme zavolali príkaz, ale predtým sme museli povedať, ako sa ten príkaz robí - definovať ho.

Blok týchto príkazov môžeme tiež pomenovať, napr. stromcek:

def stromcek():
    sipka()
    sipka()
    sipka()

rt(90)
stromcek()

Všimni si, že príkazy v definícii sú odsadené o 4 medzery (alebo 1 znak Tab).
Blok príkazov končí až tam, kde sa objaví prvý neodsadený príkaz.
Príkazy, ktoré nie sú odsadené, už nepatria do bloku, ale do hlavného programu.

Úloha: Definuj prikaz ruzica(), ktorý nakreslí svetové strany (kríž zo štyroch šípiek).

Úloha: Definuj príkazy stvorec(), trojuholnik() ktoré nakreslia dané útvary so stranu dlhou 100 obrazových bodov, a príkaz domcek(), ktorý bude využívať tieto dva príkazy.

Pri kreslení obrázkov budeme často pozerať, či sa obrázok rozložiť na jednoduchšie útvary. Kreslenie týchto útvarov si môžeme zadefinovať ako príkazy, a potom z nich výsledný útvar zložiť.

Verím, že ste sa pobavili.