Vlastní funkce  26. října 2020

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

0.

Co dělá funkce print?

1.

Co vrací funkce print?

2.

Co se stane, když tělo nějaké funkce necháš úplně prázdné? Zkus vysvětlit proč. (Tělo funkce je odsazený blok za dvojtečkou)

3.

Co se stane, když necháš úplně prázdné tělo cyklu? Zkus vysvětlit proč.

4.

Napiš funkci, která jako argument bere příjmení uživatelky/uživatele a zkusí podle něj uhodnout její/jeho pohlaví. To vrátí jako řetězec.

Funkci v programu několikrát zavolej (s různými příjmeními) a výsledky vypiš.

(Pohlaví není možné určit přesně – stačí zvládnout ta nejčastější česká příjmení.)

Program, který tohle dělá už máš – úkol spočívá v tom, že z něj správný kousek „zabalíš“ do funkce.

5.

Napiš proceduru, která vykreslí domeček dané velikosti. Velikost se zadá argumentem.

Proceduru v programu několikrát zavolej (s různými velikostmi).

domečky

6.

Máš-li ráda geometrii*, můžeš zkusit dávat domečkové proceduře dva argumenty: šířku a výšku. Je potřeba si vzpomenout na Pythagorovu větu a funkci tangens. Pozor, funkce tan vrací výsletek v radiánech; je potřeba ho převést na stupně (from math import degrees).

domečky

* t.j. jestli nemáš ráda geometrii, tak tenhle projekt přeskoč

7.

Změň program Kámen, Nůžky, Papír tak, aby opakoval hru dokud uživatel nezadá slovo konec.

8.

Změň funkci ano_nebo_ne tak, aby se místo ano se dalo použít i a, místo ne i n a aby se nebral ohled na velikost písmen a mezery před/za odpovědí.

Odpovědím jako možná nebo no tak určitě by počítač dál neměl rozumět.

9.

Funguje-li ti hra sibenice, můžeš ji vylepšit.

  • Použij funkci zamen (místo toho, aby byl příslušný kód přímo v hlavním programu).
  • Po vypsání počtu neúspěšných pokusů vypiš obrázek. Funkci, která ti vrátí obrázek podle počtu pokusů, si můžeš zkopírovat z Gistu
  • Když hráč nezadá písmeno (zadá např. ABC nebo !), nepovažuj to za tah.
  • Zařiď, aby hra fungovala pro slova s více stejnými písmeny.
  • Po skončení dej hráči možnost hru opakovat.

Jednotlivá vylepšení dělej jednotlivě a v odpovědi napiš, která jsou hotová a která rozpracovaná. Jakmile nějaké vylepšení začne fungovat, program odevzdej! (Je možné odevzdat několik verzí.)

10.

Napiš program, který simuluje tuto „hru“:

První hráč hází kostkou (t.j. vybírají se náhodná čísla od 1 do 6), dokud nepadne šestka. Potom hází další hráč, dokud nepadne šestka i jemu. Potom hází hráč třetí a nakonec čtvrtý. Vyhrává ten, kdo na hození šestky potřeboval nejvíc hodů. (V případě shody vyhraje ten, kdo házel dřív.)

Program by měl vypisovat všechny hody a nakonec napsat, kdo vyhrál.

Nápověda: průběžně stačí ukládat jen údaj o tom, kdo vede a kolik má bodů.

Tip: Program si napiš napřed v češtině; pak ho přelož do Pythonu.

11.

Tento úkol je nepovinný. Procvičuje rekurzi.

Řekni želvě, aby nakreslila tento stromeček. (Instrukce můžeš řádek po řádku přeložit do Pythonu.)

Rekurzivní želví stromek

  • Stromeček dané délky a úhlu se kreslí takto:

    • (Malý stromeček je jen jedna větvička.) Je-li délka menší než 20:
      • Pohni se dopředu o danou délku.
      • Otoč se zpátky, o 180°
      • Pohni se dopředu o délku (aby želva byla na stejném místě jako na začátku)
      • Otoč se zpátky, o 180° (aby se želva dívala stejným směrem jako na začátku)
    • Jinak (je stromeček rozvětvený):
      • Pohni se dopředu o polovinu délky (nakreslíš tak kmen)
      • Otoč se doprava o úhel
      • Nakresli stromeček s poloviční délkou (delka/2) a dvoutřetinovým úhlem (uhel*2/3)
      • Otoč se doleva o úhel
      • Nakresli stromeček s poloviční délkou a dvoutřetinovým úhlem
      • Otoč se doleva o úhel
      • Nakresli stromeček s poloviční délkou a dvoutřetinovým úhlem
      • Otoč se doprava o úhel
      • Otoč se zpátky, o 180°
      • Pohni se dopředu o polovinu délky (aby želva byla na stejném místě jako na začátku)
      • Otoč se zpátky, o 180° (aby se želva dívala stejným směrem jako na začátku)
  • Řekni želvě, ať se otočí o 90° doleva (aby se dívala nahoru)

  • Nakresli stromeček o délce 200 a úhlu 60.