Ú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.