Želva 🐢 a cykly  26. října 2022

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 neztratil/a, 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.

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 se na chvilku vrátíme k funkci range. Než napíšeš odpověď, tak si úkol vyzkoušej. Můžeš nám tu zkopírovat i výstup z terminálu, důležitá je ale hlavně tvá slovní odpověď.

19.

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

20.

Se třemi?

A nakonec několik bonusových úkolů

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.

22.

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.

23.

Napiš program na hádání čísel od 1 do 9. Program si bude "myslet" nějaké číslo od 1 do 9 včetně a uživatel bude toto číslo hádat. Při uhádnutí se vypíše počet pokusů, které uživatel potřeboval pro uhádnutí čísla.

Příklad použití programu:

Myslím na číslo od 1 do 9.
Zkus hádat, jaké číslo to je!
Zadej číslo zde: 1
Zadej číslo zde: 5
Zadej číslo zde: 8
Gratuluji! Myslel jsem na číslo 8. Uhádl/a jsi na 3. pokus.