Alternativy seminářového úkolu 6
| Website: | Moodle ZČU |
| Kurs: | Sada úloh pro procvičení v předmětu KVD/PGM1P (BP Vítek Dolný) |
| Buch: | Alternativy seminářového úkolu 6 |
| Gedruckt von: | Gast |
| Datum: | Sonntag, 18. Oktober 2026, 05:58 |
Zadání 1 – Rozdělení do týmů
Zadání
Zadej seznam jmen (každé na nový řádek) a počet týmů. Po kliknutí na Rozdělit se jména náhodně promíchají a rovnoměrně rozdělí do týmů bez duplicit. Tlačítkem Zamíchat znovu se provede nové náhodné rozdělení nad stejnými jmény. Reset vymaže výstup a odemkne vstupy.
Cíl úlohy
-
Události
onclick, práce s DOM (textContent,innerHTML,disabled,readOnly). -
Práce s poli: čištění vstupu, míchání (Fisher–Yates), rozdělení do „košíků“.
-
Validace: prázdná jména, minimální počty, počet týmů v rozumném rozsahu.
-
Kontrola duplicit jmen (citlivost jen na text – „Anna“ a „anna“ je bráno jako různé pro zjednodušení).
Vstupní podmínky
-
Základní HTML kostra.
-
Soubory: index.html, style.css, main.js.
Požadovaný výstup
-
textarease jmény,input[type=number]pro počet týmů. -
Tlačítka: Rozdělit, Zamíchat znovu, Reset.
-
Vygenerované seznamy týmů s počítadlem členů.
-
Krátké komentáře v JS (česky).
Doplňující pokyny
-
Sémantické prvky
main,section,h1,fieldset,legend,ul,li. -
Jednoduché třídy/ID, čisté odsazení.
-
Nepoužívej šipkové funkce ani ternární operátory. Podmínky piš explicitně (
if (stav == true)).
Rozdělení do týmů
Výstup
Řešení úlohy 1 – Rozdělení do týmů
Co je zde splněno
-
Klikací události, validace vstupu, práce s poli a náhodné míchání (stejné „stavebnice“ jako loterie).
-
Kontrola rozumných hranic a srozumitelné hlášky.
-
Vykreslení výstupu do DOM, počty členů v týmech.
-
Možnost znovu náhodně promíchat beze změny vstupu.
Poznámky
Pokud chceš kontrolovat skutečné duplicity jmen (bez ohledu na velká/malá písmena), můžeš před mícháním převést
toLowerCase()a zkontrolovat výskyty v pomocném poli.
Zadání 2 – Rozpis zápasů
Zadání
Zadej seznam týmů (každý na nový řádek). Kliknutím na Vygenerovat rozpis se týmy náhodně promíchají a vytvoří se rozpis „každý s každým“ podle kol. U každého zápasu lze zapsat výsledek (góly/domů vs. venku) tlačítkem Uložit – tím se okamžitě aktualizuje tabulka (body, výhry, remízy, prohry, skóre). Tlačítkem Nový seed (promíchat) se rozpis přegeneruje se stejnými týmy, Reset vše smaže.
Cíl úlohy
-
Události
onclick, práce s DOM (innerHTML,textContent, atributy). -
Práce s poli: čištění vstupu, Fisher–Yates míchání, kruhová metoda rozpisu.
-
Validace: minimální počet týmů, detekce duplicit, prázdné řádky.
-
Základní „datový model“: uložení zápasů, ukládání a přepis výsledků, přepočet tabulky.
Vstupní podmínky
-
Základní HTML kostra.
-
Soubory: index.html, style.css, main.js.
Požadovaný výstup
-
textareapro týmy, tlačítka Vygenerovat rozpis, Nový seed, Reset. -
Vykreslená kola se zápasy; u každého zápasu dvě
input type="number"a tlačítko Uložit. -
Průběžná tabulka: Tým, Z, V, R, P, G+, G−, +/- , Body.
-
Povinné české komentáře v JS. Žádné šipkové funkce, ternární operátory ani
var.
Doplňující pokyny
-
Použij
main,section,h1,fieldset,legend,table,thead,tbody. -
Jednoduché názvy proměnných a tříd, čisté odsazení.
-
Pokud je počet týmů lichý, přidej „Volno“ (zápasy s „Volno“ se nehrají a nezapisují).
Rozpis zápasů – každý s každým
Rozpis
Tabulka
| Tým | Z | V | R | P | G+ | G− | +/- | Body |
|---|
Řešení úlohy 2 – Rozpis zápasů
Co je zde splněno
-
Stejné technické mechaniky: klikací tlačítka, validace vstupu, práce s poli, náhodné míchání, bez duplicit, podmínky
if, změny v DOM. -
Jiný cíl: místo losování čísel se plánuje turnaj a zapisují výsledky.
-
Kruhová metoda vytváří férový rozpis, „Volno“ řeší lichý počet týmů.
-
Zápasy ukládají výsledky, přepis výsledku korektně odečte starý stav a přičte nový.
-
Tabulka průběžně počítá Z, V, R, P, G+, G−, +/- , Body a jednoduchým způsobem seřazuje.
Poznámky
Řazení tabulky je záměrně napsané „ručně“, aby bylo pro začátečníky čitelné; v praxi by se použilo
Array.prototype.sorts porovnávací funkcí.Pokud nechceš, aby se střídalo pořadí domácí/venkovní, můžeš zrušit podmínku
if (i % 2 === 1)v generování kol.