Funkce a želva  23. března 2023

Materiály

Nejste účastníkem kurzu
Pro zápis do kurzu se nejprve přihlašte a následně použijte tlačítko v přehledu kurzu.

Domácí projekty

Tolik nových slovíček! Aby ses v nich neztratila, zkus pomocí pár vlastních slov popsat, co to je …

0.

funkce

1.

argument

2.

procedura

3.

návratová hodnota

4.

výraz

5.

cyklus

Želví kreslení! Tahle sekce tě naučí myslet jako programátoři počítačové grafiky. Je dobré jednotlivé projekty dělat postupně a nepřeskakovat. Kdyby sis potřebovala od želvy oddechnout, skoč až na další sekci.

Když něco začne fungovat, doporučuji znovu si řešení projít a zamyslet se nad ním.

6.

Nakresli trojúhelník.

trojúhelník

Poznámka: Rovnostranný trojúhelník má vnitřní úhly 60°. Želva se ale otáčí o vedlejší úhel 180 - 60 = 120°.

diagram

7.

Nakresli domeček!

domeček

Jak pravil Pythagoras, délka šikmé čáry v domečku je √2-krát délka stěny. Funkci na odmocninu najdeš na taháku.

8.

Nakresli vesnici!

vesnice

Jestli kreslení trvá dlouho a nebaví tě čekat, můžeš naimportovat a použít funkci speed, která nastavuje rychlost dalšího kreslení:

from turtle import speed

speed(1)  # želva jak má být – extrémně pomalá
speed(3)  # pomalá želva
speed(6)  # normálně rychlá želva
speed(10) # hodně rychlá želva
speed(0)  # turboželva
9.

Nakresli vedle sebe pětiúhelník, šestiúhelník, sedmiúhelník, osmiúhelník.

mnohoúhelníky

Vnitřní úhel pravidelného n-úhelníka má 180 × (1-2/n) stupňů.

Aby byly tvary zhruba stejně veliké, použij pro n-úhelník délku strany např. 200/n

10.

Nakresli pravidelný n-úhelník, kde n zadá uživatel.

11.

Želva umí jen rovné čáry. Jde pomocí rovných čar nakreslit kolečko?

Nevíš-li, přeskoč na další projekt a pak se sem vrať.

12.

Nakresli pravidelný stoúhelník.

13.

Nakresli takovýto ornament:

ornament

Nevíš-li si rady, vezmi pravítko a změř délky jednotlivých čar. Doporučuju začít od středu.

14.

Nakresli takovýto ornament:

ornament

15.

Nakresli spirálu.

spirála

Od ornamentů ke spirále se dostaneš stejným způsobem jako od n-úhelníků ke kolečku.

16.

Napiš obrázek! Třeba les ze stromů, město z domů, nebe z hvězd, dav ze smajlíků, hradbu z věží, zikkurat ze schodů, ...

Můžeš použít i nějakou z funkcí modulu random.

Když budeš mít obrázků víc, odevzdej je všechny!

17.

Na srazu jsme kreslili tři čtverce, každý otočený o 15°.

Nakresli 18 čtverců pootočených o 20°.

18.

Vezmi program z minulé úlohy a dokresli stonek a listy. Je jenom na tobě, jaký budou mít tvar – nemusí odpovídat vzorovému obrázku. Piš komentáře a snaž se opakovat pomocí for, ne pomocí Ctrl+C Ctrl+V.

květina

V těchto úkolech je něco nového k naučení. Úkoly nezadávají postup, jak na odpověď přijít, ale to určitě zvládneš!

19.

Jakou sekvenci dostaneš, když funkci range zavoláš se dvěma argumenty?

20.

Se třemi?

Hra pro tento týden!

21.

Naprogramuj hru Oko bere:

  • Začínáš se skóre 0 bodů.
  • V každém kole:
    • Počítač vypíše, kolik máš bodů.
    • Počítač se zeptá, jestli chceš pokračovat.
    • Pokud byla odpověď „ne“:
      • Hra končí.
    • Jinak:
      • Počítač „vybere kartu“ – náhodně vybere číslo od 2 do 10;
      • vybranou hodnotu vypíše;
      • přičte tuto hodnotu ke skóre.
    • Pokud máš víc než 21 bodů:
      • Počítač vypíše, že prohráváš;
      • hra končí.
  • Po skončení hry počítač vypíše dosažené skóre.

Cílem hry je neprohrát a získat přitom co nejvíc bodů, ideálně 21.

A na konec pár nepovinných úkolů. Nestíháš-li, zaměř se na jiné úkoly.

22.

Napiš program, který postupně načte od uživatele dvě čísla a jednoznakový řetězec – buď '+', '-', '*' nebo '/'. Program provede na číslech příslušnou operaci.

Příklad použití programu (hodnoty za dvojtečkou doplnil uživatel):

První číslo: 123
Druhé číslo: 456
Operace: +
123 + 456 = 579
23.

Napiš program, který se pětkrát zeptá na číslo a nejmenší zadané číslo vypíše.

Program by mělo jít snadno upravit tak, aby se ptal na deset nebo sto čísel.

Nevíš-li si rady, podívej se do materiálů k Přepisování proměnných. Místo přičítání do proměnné celkem zkus dávat správnou hodnotu do proměnné zatim_nejmensi.

24.

Bonus: nutná znalost cyklu while. Uprav hru Oko bere, aby hra trvala tolik kol, dokud hráč nevyhraje nebo neprohraje - ani jedno kolo déle.