Zadání na druhé pololetí
Piškvorky
- 1. února: Piškvorky. Úkolem je porazit bojovníka štěstěny
robot_random
. - 15. února: vyhodnocení piškvorkových robotů.
Šachy
- 22. února: Šachy. úkolem je porazit ukázkového robota
robot_onestep
, který hodnotí zisk nebo ztrátu svého tahu. - 1. března: rozbor kódu šachů.
- 8. března: vyhodnocení šachového turnaje.
Aktuální skóre (po 10 hrách za obě strany):
jméno | součet | onestep |
random |
istra |
stepan |
adela |
kacka |
vojta |
lukas |
martin |
---|---|---|---|---|---|---|---|---|---|---|
onestep |
18 | 0 | 20 | -18 | 20 | 20 | -20 | -4 | -20 | 20 |
random |
-64 | -20 | 0 | -20 | 20 | 20 | -20 | -20 | -20 | -4 |
istra |
108 | 18 | 20 | 0 | 20 | 20 | 1 | 8 | 3 | 18 |
stepan |
-140 | -20 | -20 | -20 | 0 | 0 | -20 | -20 | -20 | -20 |
adela |
-140 | -20 | -20 | -20 | 0 | 0 | -20 | -20 | -20 | -20 |
kacka |
119 | 20 | 20 | -1 | 20 | 20 | 0 | 20 | 0 | 20 |
vojta |
38 | 4 | 20 | -8 | 20 | 20 | -20 | 0 | -18 | 20 |
lukas |
115 | 20 | 20 | -3 | 20 | 20 | 0 | 18 | 0 | 20 |
martin |
-54 | -20 | 4 | -18 | 20 | 20 | -20 | -20 | -20 | 0 |
Poker
- 15. března: Poker a jeho pravidla; naprogramujte funkci, která rozpozná v sadě 5 karet některou z výherních skupin
- 22. března: suplovaná rozcvička ze tří úloh na codewars.com
- 29. března: naprogramujte funkci, která rozpozná postupku v sadě dvou karet na ruce a 5 karet na stole.
- 5. dubna: vytvořte robota, který porazí defaultní třídu Robot.
Pak od 5. do 11. dubna budu pokaždé ve 22:00 vyhodnocovat turnaj. Za každý vyhraný turnaj dostanete bonbón. - 12. dubna: Poker, zlepšujte svého robota, aby vyhrával denní turnaje. Každý večer ve 22:00 až do 18. dubna budu vyhodnocovat turnaje, a za vítězství udělím bonbón.
Výsledky denních turnajů (datum odkazuje na záznam jedné hry):
třída | 5. dubna | 6. dubna | 7. dubna | 8. dubna | 9. dubna | 10. dubna | 11. dubna | 12. dubna | 13. dubna | 14. dubna | 15. dubna | 16. dubna | 17. dubna | 18. dubna |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Vojta | 44,5 | 37,8 | 37,4 | 12,6 | 14,0 | 15,0 | 15,0 | 15,2 | 16,9 | 15,7 | 15,3 | 15,2 | 178,2 | 173,9 |
Stepan | 153,4 | 202,7 | 201,6 | 199,7 | 205,3 | 208,3 | 209,4 | 197,2 | 213,1 | 199,4 | 206,5 | 201,2 | 156,4 | 154,3 |
Adela | 115,2 | 135,5 | 138,2 | 134,9 | 135,5 | 127,9 | 135,6 | 139,7 | 134,0 | 129,5 | 129,2 | 129,0 | 146,6 | 148,1 |
Kacka | 113,7 | 111,4 | 113,1 | 113,0 | 110,9 | 110,8 | 115,0 | 117,1 | 111,8 | 139,8 | 138,7 | |||
Martin | 99,3 | 103,1 | 98,1 | 100,5 | 97,1 | 102,5 | 122,4 | 129,3 | ||||||
Lukas | 204,0 | 214,9 | 214,3 | 232,2 | 226,7 | 227,4 | 219,2 | 226,5 | 220,0 | 233,0 | 227,3 | 232,9 | 45,8 | 44,7 |
Robot | 42,1 | 4,3 | 4,3 | 3,5 | 3,2 | 4,3 | 4,4 | 3,8 | 3,4 | 3,1 | 3,6 | 3,8 | 5,5 | 4,9 |
Robot | 40,9 | 4,9 | 4,2 | 3,4 | 3,9 | 4,0 | 4,2 | 3,6 | 3,6 | 3,8 | 3,9 | 3,6 | 5,2 | 5,9 |
V tabulce je vypsaný průměrný zůstatek po turnaji 100 her. Průměr se počítá z 1000 takových turnajů.
Moduly
- 19. dubna: najděte na webu kód a zprovozněte program, který:
- nakreslí na obrazovce kočku, která běhá za kurzorem myši (
pyglet
) - na konkrétní webové stránce vyplní formulář (
pyautogui
) - zobrazí okno pro výběr souboru a pak zobrazí ten soubor (
pyQt5
) - na obrázku označí, co má kruhový tvar (
opencv
) - určí, jestli se někdo dívá do kamery (
mediapipe
) - stáhne z webové stránky všechny obrázky (
beautifulsoup
+requests
) - z excelové tabulky s odpověďmi vypíše průměr každé třídy (
pandas
) - vykreslí graf funkce dvou proměnných (
numpy
+matplotlib
) - vytvoří webovou stránku, na kterou jde postovat zprávu (
django
)
- nakreslí na obrazovce kočku, která běhá za kurzorem myši (
- 26. dubna: najděte na webu kód a zprovozněte program podle zadání.
Zabalte jej pomocí
pyinstaller
.
Projekt
- 10. května: zadejte si projekt. Brainstorming témat pomůže.
Zadání projektu by mělo popisovat, komu a k čemu bude ta práce dobrá. Kdyby podle vašeho zadání udělal práci někdo jiný, mělo by zadání být dost srozumitelné, abyste s výsledkem byli spokojení. - 24. května: zadejte si projekt, jestli jste to posledně neudělali.
- No code tool pro vytváření api requestu bez potřeby programování. Zjednudušený program typu Postman. Uživatel vloží do pole "endpoint" url, zvolí typ requestu, do pole "tag:value" vloží název tagu a hodnotu při stisknutí tlačítka "more fields" vytvoří nové pole "tag:value" a při stisknutí "submit" odešle požadavek.
- Program, který pomocí sliderů ukazuje, jak se mění jednotlivé veličiny ve vzorci, když se mění jiná veličina. Vypisuje vzorec, pro každou veličinu umožňuje ji měnit pomocí slideru nebo ji nastavit jako konstantní. Zároveň posouvá ostatní slidery, aby ukázal její závislost na ostatních veličinách. Když mi náhodou zbyde čas, přidám vyjádření neznámé ze vzorce.
- Vytvořit hru Snake. Ovládání pomocí šipek/WASD, nedokáže se otočit o 180 stupňů. Spawne se na náhodné pozici, vždy na začátku míří k nejvzdálenějšímu okraji. Ovoce se spawnuje náhodně. Prodlužuje se normálně jako snake, game over když narazí na okraj obrazovky nebo se kousne do ocasu, přitom vypíše skóre.
- Programovací jazyk, ve kterém bude možné vytvářet proměnné a používat základí operátory (+,-,/,*) a if. Bude jej možné zkompilovat do strojového kódu a spustit jako exe.
- Vizualizace lineární transformace pomocí matic. Kódu se zadá matice reprezentující, kam se zobrazí bázové vektory dvourozměrného prostoru. Výsledkem budou přímky zobrazující tuto transformaci.
- VELEDÍLO V PODOBĚ TROJSKÉHO KONĚ. Cílem mojí práce je stvořit malware, který bude zaznamenávat data (stisky klávesnice) od uživatele (Adama Domince :D) a odesílat je mně.
- 31. května: vyrobte si pískoviště s kusy kódu, které do projektu budete potřebovat.
- 7. června
- 14. června: odevzdání a prezentace projektu
- 21. června: záloha
Úlohy z prvního pololetí
Úkolem na první pololetí bylo splnit aspoň 25 programovacích úloh. To znamená pokaždé na semináři splnit jednu, a k tomu pár navíc.
Odevzdaná úloha musí být spustitelný program bez chyb, který dává správný výsledek pro libovolný vstup v mezích zadání úlohy.
Datové typy
- Program vypisující Nazdar (do 4. října) †
- Délka řetězce (do 11. října) †
- Názvy typů (do 24. ledna) †
- Třída počítající průměr (do 24. ledna) †
- Trojúhelníková nerovnost (do 24. ledna) †
Podmínky a cykly
- Nezáporná čísla (do 11. října) †
- Kratší z parametrů (do 18. října) †
- Celočíselný logaritmus (do 25. října) †
- Transponovaná čtvercová matice (do 25. října) †
- Výskyt čísla 5 (do 6. prosince) †
- Skupiny stejných hodnot (do 13. prosince) †
Rébusy
- Had poskládaný v mřížce (do 1. listopadu) †
- Mřížka s čísly (do 1. ledna) †
- Rovnice s číslicemi (do 10. ledna) †
- Tahy koněm (do 17. ledna) †
- Piškvorky (do 24. ledna) †
- Bludiště (nebodováno) †
Řetězce a regulární výrazy
- Vyplnění jednoho druhým (do 18. října) †
- Pořadí událostí (do 20. prosince) †
- Čísla v textu (do 23. prosince) †
- Symetrická slova (do 23. prosince) †
- Japonština (do 10. ledna) †
- Hlučný kávovar (do 10. ledna) †
Matematika
- Sčítání času na hodinách (do 1. listopadu) †
- Odmocnina z velkého čísla (do 29. listopadu) †
- Bonusová výzva (není bodováno, do 31. prosince) †
- Maticové násobení (do 3. ledna) †
- Kochova křivka (do 10. ledna) †
- Největší dlaždička (do 24. ledna) †
Seznamy, slovníky, množiny
- Odlišnosti v seznamech (do 1. listopadu) †
- Kružnice z dvojic (do 15. listopadu) †
- Okraj trojúhelníkové sítě (do 24. listopadu) †
- Zvířata na arše (do 24. listopadu) †
- Nejčastější písmena (do 6. prosince) †
- Slévání seznamů (do 3. ledna) †
- Propojené ostrovy (do 17. ledna) †
- Hosté na mejdanu (do 24. ledna) †
Klasifikace
Úkolem je splnit 25 úloh za pololetí. Za každých pět nesplněných úloh (zaokrouhleno nahoru) bude stržený stupeň.
V tabulce 1 znamená splněnou úlohu, zatímco 0 znamená, že odevzdané řešení nesplňuje zadání.
jméno | součet | [0,0] | [0,1] | [0,2] | [0,3] | [0,4] | [1,0] | [1,1] | [1,2] | [1,3] | [1,4] | [1,5] | [2,0] | [2,1] | [2,2] | [2,3] | [2,4] | [3,0] | [3,1] | [3,2] | [3,3] | [3,4] | [3,5] | [4,0] | [4,1] | [4,3] | [4,4] | [4,5] | [5,0] | [5,1] | [5,2] | [5,3] | [5,4] | [5,5] | [5,6] | [5,7] | |||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AV | 25 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||||||||
IŠ | 25 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||||||||
KC | 25 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |||||||||||||
LN | 25 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||||||||||||
MV | 25 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||||||||||||
MH | 20 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | |||||||||||||||||
ŠK | 24 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | ||||||||||||||
VP | 25 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Odkazy
- Oficiální dokumentace docs.python.org
- Čitelné, leč neúplné návody na w3schools.com
- Korespondenční seminář KSP
- Programovací sport Code Golf