V tomto průvodci se podíváme na něco, co už dávno používate.
Jsou to funkce.
Kdykoli, když používáte příkazy jako "rect", "fill" nebo "text",
voláte funkce.
A tyto funkce nakreslí, co jim řeknete.
A co to vlastně funkce je?
Je to kus kódu, který jsme dali dohromady a nějak jsme ho pojmenovali.
A tuto funkci můžeme opakovaně používat.
Vezměte si třeba "rect".
Co vlastně "rect" dělá?
Jednoduše nakreslí čtyři čáry.
To samé bychom zvládli udělat i pomocí funkce "line".
Vidíme, že třeba pomocí 4 takových funkcí vykreslíme obdélník.
Je ale pravda, že obdélník budeme kreslit docela často.
A počítat pokaždé nakreslení všech čtyř čar, to je celkem otrava.
Namísto toho tedy máme funkci "rect".
A ta dělá to samé, jako tyto čtyři řádky kódu.
Ale za použití méně kódu!
Funkce "rect" je funkcí dostupnou ve všech programech na Khan Academy.
Můžete si ale udělat i své vlastní funkce,
které pak můžete používat ve svých programech.
Dám vám příklad.
Řekněme, že chceme program, který bude opakovaně kreslit Winstona.
Třeba bychom chtěli vyprávět Winstonův životní příběh
A chtěli bychom ukázat každou etapu jeho života.
Takhle by mohl vypadat počáteční Winstonův kód.
Máme zde proměnné faceX a faceY.
Ty označují střed obličeje, vůči kterému se vykreslí oči a ústa.
V této chvíli program vidí kód bez jakékoli funkce.
Program tedy kód spustí, ale pouze jednou.
Zkusíme z toho teď udělat funkci.
Princip je velmi podobný tomu, jak se definují proměnné.
Už to vlastně skoro umíme.
Napíšeme tedy "var drawWinston".
Tedy název bude "nakresli Winstona"
A pak napíšeme rovná se.
Ale tady namísto čísla nebo řetězce napíšeme "function" a "prázdné závorky".
Pak napíšeme otevřenou složenou závorku, zavřenou složenou závorku a středník.
Teď musíme vložit všechno, co chceme ve funkci mít,
mezi složené závorky.
Čili vezmeme tento kód a vložíme ho do naší funkce.
Pěkně to ještě odsadíme.
Takže teď tady máme proměnnou, která obsahuje naši funkci.
V podstatě jsme tento shluk kódu označili proto,
abychom ho později během programu mohli přivolat.
Upravili jsme si to, abychom tento kód mohli opakovaně používat.
Ale teď si všimněte, že nám zmizel Winston!
Ztratili jsme ho.
Stalo se to,
že při vložení kódu do funkce jsme našemu programu řekli:
"Tady máš nějaký kód k přivolání, ale jenom když ti to řeknu."
Musíme tedy programu říct, aby kód spustil.
A to znamená, že musíme přivolat funkci.
Úplně stejně jako s elipsami, čárami a obdélníky.
Napíšeme název funkce "drawWinston".
Doplníme závorky.
A samozřejmě středník.
A máme Winstona!
Mně se to dost líbí!
Vám asi úplně ne, protože náš program dělá to samé, co předtím.
Ale v čem je to teď lepší?
Smysl funkcí je ten, že je můžeme použít opakovaně.
Tak pojďme na to.
Jednoduše zkopírujeme a vložíme přivolání funkce.
Znovu a ještě jednou.
No, ale to pořád vypadá stejně.
Funguje to, kreslí to několik Winstonů.
Problémem je, že jsou všichni na tom samém místě.
Kdybychom měli rentgen,
ozářili bychom plátno a viděli bychom tři Winstony.
Nevím jak vy, ale já rentgen nemám.
Můžeme ale naši funkci trochu upravit.
A pak už to vidět bude.
Jak vidíte, faceX a faceY jsou vždy 202 a 208.
To můžeme změnit použitím funkce "random".
Určíme náhodná čísla od 50 do 350.
Vygeneruje mi to náhodná čísla v tomto rozmezí.
Tady uděláme to samé.
Takže při každém přivolání funkce se generují náhodná čísla.
Při opětovném spuštění dostaneme náhodné Winstony.
Podle mě je to skvělý,
protože bez funkce bychom museli napsat hromadu kódu.
Museli bychom napsat třikrát tolik kódu.
Pořád to ale není tak praktické, jak by to mohlo být.
My totiž nechceme náhodné Winstony,
ale Winstony na specifické pozici.
Takže se těšte na příště,
protože se naučíme něco o tom, jak naší funkci předávat parametry.