You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 
 
 
 

575 lines
18 KiB

{
"tasks": [
{
"id": "26-Z1-1",
"type": "open-data",
"comment": "Kevin a magnety - triviální, lineární průchod pole",
"requires": [
"label-1d-pole",
"data"
],
"title": "26-Z1-1"
},
{
"id": "26-Z1-2",
"type": "open-data",
"comment": "Piškvorky - detekce vítězství v piškvorkách, procházení 2D pole v různych směrech",
"requires": [
"26-Z4-3"
]
},
{
"id": "26-Z1-3",
"type": "open-data",
"comment": "Zamilovaný dopis - triviální, procházení stringů po znacích a kontrola podmínek",
"requires": [
"26-Z1-1",
"label-retezce"
]
},
{
"id": "26-Z1-4",
"type": "open-data",
"comment": "Hroch v jezeře - BFS či jiné prohledávání, počítání velikosti komponent v 2D poli, ",
"requires": [
"26-Z4-3",
"label-grafy"
]
},
{
"id": "26-Z2-1",
"type": "open-data",
"comment": "Had z domina - triviální, linerání průchod pole a počítání, na kolika místech platí podmínka, vyžaduje práci se dvojicemi",
"requires": [
"26-Z1-1",
"label-1d-pole"
]
},
{
"id": "26-Z2-2",
"type": "open-data",
"comment": "SADO - triviální, procházení celých čísel v intervalu a kontrola podmínky",
"requires": []
},
{
"id": "26-Z2-3",
"type": "open-data",
"comment": "Šifrovaná zpráva - práce s řetězci, hledání mapování mezi písmenky (substitučka) a validace, že jinde substitučka funguje",
"requires": [
"26-Z1-3",
"label-retezce"
]
},
{
"id": "26-Z2-4",
"type": "open-data",
"comment": "Životně důležitá úloha - dostanu pole čísel, potřebuju v něm najít pravidelně se opakující výskyty hodnot, relativně složitá práce s poli, dvojcemi apod.",
"requires": [
"26-Z2-1"
],
"title": "26-Z2-4"
},
{
"id": "26-Z3-1",
"type": "open-data",
"comment": "Zámky labyrintu - hromada ifů, vhodné možná na code review, hledání čísla z trojice takového, že je trojice aritmetrická posloupnost",
"requires": []
},
{
"id": "26-Z3-2",
"type": "open-data",
"comment": "Čarodějova šifra - šifrování mřížkou, práce se stringy, rotace matice, vhodné na code review?, docela hard",
"requires": [
"26-Z4-3",
"29-Z3-2"
]
},
{
"id": "26-Z3-3",
"type": "open-data",
"comment": "Hádanka - triky s dělitelností devíti a rozkladem čísel, docela hard teorie",
"requires": []
},
{
"id": "26-Z3-4",
"type": "open-data",
"comment": "Tvar labyrintu - nejdelší cesta ve stromě, graf",
"requires": [
"label-grafy-pracovni-poznamka"
]
},
{
"id": "26-Z4-1",
"type": "open-data",
"comment": "Vražedná čísla- WTF, teorie čísel, hard as fuck, divný",
"requires": []
},
{
"id": "26-Z4-2",
"type": "open-data",
"comment": "Sbírání vajíček - hledení mediánu, musí se to ale vymyslet, nejkratší cesta při chození tam a zpět",
"requires": []
},
{
"id": "26-Z4-3",
"type": "open-data",
"comment": "Hra Othello - link na 26-Z1-2, procházení 2D pole po různých směrech",
"requires": [
"26-Z1-1",
"label-2d-pole"
],
"title": "26-Z4-3"
},
{
"id": "26-Z4-4",
"type": "open-data",
"comment": "Hlídači v labyrintu - policajti hlídající na grafu, konkrétně na stromě, rekurze, technicky asi až DP",
"requires": [
"label-grafy-pracovni-poznamka"
]
},
{
"id": "27-Z2-1",
"type": "open-data",
"comment": "Závorky z cereálií - 2 průchody pole, závorky",
"requires": [
"26-Z1-1",
"label-1d-pole"
]
},
{
"id": "29-Z1-1",
"type": "open-data",
"comment": "Kevinova želva — triviální, průchod po 2D souřadnicích",
"requires": [
"label-zelvy"
],
"title": "29-Z1-1"
},
{
"id": "29-Z1-3",
"type": "open-data",
"comment": "Petrova statistika — ne úplně triviální, tvorba histogramu z pole",
"requires": [
"27-Z2-1"
],
"title": "29-Z1-3"
},
{
"id": "29-Z1-4",
"type": "open-data",
"comment": "Zuzčin výlet — DFS (topologické pořadí)",
"requires": [
"label-grafy-pracovni-poznamka"
]
},
{
"id": "29-Z2-1",
"type": "open-data",
"comment": "Krocení zlé želvy — triviální, průchod po 2D souřadnicích, přímo navazuje na 29-Z1-1",
"requires": [
"29-Z1-1"
]
},
{
"id": "29-Z3-1",
"type": "open-data",
"comment": "Želva na dvorku — spíš triviální, netriviální udělat efektivně (ale asi to není třeba pro úspěch), volně navazuje na 29-Z2-1 a 29-Z1-1, průchod po 2D souřadnicích, invalidní příkazy (směrem do překážky) ignorujeme",
"requires": [
"26-Z4-3"
]
},
{
"id": "29-Z3-2",
"type": "open-data",
"comment": "Písemka z angličtiny — voser implementovat, easy dřevorubecký řešení, optimálně trie, což na Z IMHO hard",
"requires": [
"26-Z2-3",
"label-retezce"
]
},
{
"id": "29-Z3-3",
"type": "open-data",
"comment": "Šestková čísla — mega voser implementovat, spíš matematická úloha, převod dešitkových čísel do hacknutých římských",
"requires": []
},
{
"id": "29-Z4-3",
"type": "open-data",
"comment": "Želva v akváriu — malej voser, triviální, přímo navazuje na 29-Z2-1 a 29-Z1-1, průchod po 3D souřadnicích",
"requires": [
"29-Z1-1",
"29-Z2-1"
]
},
{
"id": "31-Z1-1",
"type": "open-data",
"requires": [],
"comment": "úloha s odčítáním času",
"title": "31-Z1-1"
},
{
"id": "31-Z1-2",
"type": "open-data",
"comment": "BFS (šachovnice, custom figurka, nejkratší cesta) ",
"requires": [
"label-grafy-pracovni-poznamka"
]
},
{
"id": "31-Z1-4",
"type": "open-data",
"comment": "2D pole (až na poslední vstup), hešování (piškvorky) - navazuje na 26-Z1-2",
"requires": [
"26-Z1-2"
],
"title": "31-Z1-4"
},
{
"id": "31-Z3-2",
"type": "open-data",
"comment": "DFS (hledání cesty v grafu po písmenech)",
"requires": [
"label-grafy-pracovni-poznamka"
]
},
{
"id": "31-Z3-3",
"type": "open-data",
"comment": "barvení bipartitního grafu (hledání partit), na vstupu hrany",
"requires": [
"26-Z1-4",
"label-grafy"
]
},
{
"id": "data",
"type": "text",
"comment": "...",
"requires": [
"jak-resit-ulohy"
],
"title": "Data a algoritmy",
"htmlContent": "<h2>Datové struktury</h2><p>V programech potřebujeme nějak reprezentovat data o reálném světě. Paměť počítače je ale jen dlouhá sekvence bytů (malých čísel). Abychom mohli reprezentovat něco komplikovanějšího, skládáme si v paměti <strong>datové struktury.</strong> Technicky je to akorát hromada čísel, kterým přikládáme speciální význam. Pro potřeby programátora je ale často podstatnější ten samotný speciální význam, než hodnota čísel, kterými je zapsán.</p><p>Úlohy, které najdeš dále, se všechny zabývají nějakou datovou strukturou. Jsou uspořádány s rostoucí obtížností a pro pochopení složitějších datových struktur je často potřeba mít vštípené detaily struktury předchozí.</p><h2>Algoritmy</h2><p>Datové struktury jsou nám samotné k ničemu. K jejich smysluplnému využití potřebujeme nějaký důvod. Datovou strukturou jenom reprezentujeme nějaký stav světa. Proto v úlohách najdeš krom datových struktur také využití různých algoritmů - ověřených postupů, jak řešit nějaké druhy problémů.</p>"
},
{
"id": "jak-resit-ulohy",
"type": "text",
"requires": [
"start"
],
"comment": "kecy o tom, jak se může řešit taková úloha",
"title": "Jak řešit úlohy?",
"htmlContent": ""
},
{
"id": "label-1d-pole",
"type": "label",
"comment": "...",
"requires": [],
"title": "Pole",
"rotationAngle": 337
},
{
"id": "label-2d-pole",
"type": "label",
"comment": "...",
"requires": [],
"title": "2D pole",
"rotationAngle": 340
},
{
"id": "label-grafy",
"type": "label",
"comment": "...",
"requires": [],
"title": "Grafy",
"rotationAngle": 342
},
{
"id": "label-grafy-pracovni-poznamka",
"type": "text",
"comment": "Chtělo by to grafy celé nějak přeuspořádat. Je to přeci jen dost široké téma.",
"requires": [
"31-Z3-3"
],
"title": "Grafy, ale neuspořádané",
"htmlContent": "<p>undefined</p>"
},
{
"id": "label-retezce",
"type": "label",
"comment": "...",
"requires": [],
"title": "Textové řetězce",
"rotationAngle": 326
},
{
"id": "label-uvod",
"type": "label",
"comment": "...",
"requires": [],
"title": "Úvod"
},
{
"id": "label-zelvy",
"type": "label",
"comment": "...",
"requires": [],
"title": "Želvy",
"rotationAngle": 43
},
{
"id": "placeholder-kurz-programovani",
"type": "text",
"comment": "...",
"requires": [
"programovani"
],
"title": "placeholder-kurz-programovani",
"htmlContent": "<p>Tady by měl začítat kurz programování</p>"
},
{
"id": "programovani",
"type": "text",
"comment": "...",
"requires": [
"jak-resit-ulohy"
],
"title": "Programování",
"htmlContent": "<p>Počítače nemluví lidskou řečí. Aspoň zatím. Pokud jim chceme vysvětlit nějaký komplikovanější problém, potřebujeme mluvit správnou řečí - nějakým <strong>programovacím jazykem.</strong></p><h2>Jaký programovací jazyk použít?</h2><p>Programovacích jazyků je více a každý se hodí na něco jiného. S roustoucími zkušenostmi se pravděpodobně naučíš přecházet mezi několika programovacími jazyky podle toho, jaký problém zrovna řešíš.</p><p>Pro řešení úloh Ti doporučujeme <strong>Python 3</strong>. Pokud se ho chceš naučit, můžeš zkusit projít kurzem, který jsme pro Tebe připravili.</p>"
},
{
"id": "start",
"type": "text",
"requires": [
"label-uvod"
],
"comment": "úvodní kecy o tom, jak to celé funguje",
"title": "Start",
"htmlContent": "<p>Aktuálně je celý projekt v <strong>BETA režimu</strong>. Pokud najdeš libovolnou chybu nebo pokud Tě napadá, že by se dalo cokoliv vylepšit (a ideálně jak), dej prosím vědět Vaškovi a Standovi. Díky!</p><h2>Vítej v našem novém kurzu!</h2><p>Pokud tě napadá, jak by se tento <strong>projekt mohl jmenovat</strong>, dej nám vědět!</p><h3>Co zde (časem) najdeš?</h3><ul><li>Základní kurz programování (dříve byl samostatně)</li><li>Roztříděné úlohy ze starších ročníků a sérií</li><li>Staré seriály</li><li>…a další úlohy, které jsme odněkud vyhrabali nebo nově vyrobili</li></ul><h3>Co budu mít z toho, že budu úlohy zde řešit?</h3><p>Něco se můžeš naučit a z toho můžeš mít dobrý pocit. Nic jiného teď neslibujeme. Splnit zde úlohu je to samé jako splnit ji ve cvičišti. Navíc ono k úlohám jsou většinou přístupná vzorová řešení, takže soutěžit zde nedává moc smysl.</p>"
}
],
"clusters": {
"Triviální výpočet": [
"31-Z1-1"
],
"Triviální průchod 1D pole": [
"26-Z1-1"
],
"Triviální průchody 2D pole": [
"26-Z1-2",
"26-Z4-3",
"29-Z3-1",
"31-Z1-4"
],
"Želvy": [
"29-Z1-1",
"29-Z2-1",
"29-Z4-3"
],
"Komplexnější práce s poli": [
"26-Z2-4",
"29-Z1-3"
],
"Práce s čísly": [
"26-Z2-2",
"26-Z3-3",
"26-Z4-1"
],
"Práce s řetězci": [
"26-Z1-3",
"26-Z2-3",
"26-Z3-2",
"29-Z3-2"
],
"Grafy": [
"26-Z1-4",
"26-Z4-4",
"26-Z3-4",
"29-Z1-4",
"31-Z1-2",
"31-Z3-2",
"31-Z3-3"
],
"Voser": [
"26-Z3-1",
"29-Z3-3"
],
"Nápad": [
"26-Z4-2"
]
},
"positions": {
"26-Z1-1": [
-101.57299041748047,
97.42442321777344
],
"26-Z1-2": [
-390.52777099609375,
223.46969604492188
],
"26-Z1-3": [
-108.57014465332031,
413.4291076660156
],
"26-Z1-4": [
-721.7426147460938,
242.6431427001953
],
"26-Z2-1": [
-40.54367446899414,
136.4449920654297
],
"26-Z2-2": [
-373,
-92
],
"26-Z2-3": [
-170.55516052246094,
448.4372253417969
],
"26-Z2-4": [
-51.54255294799805,
201.43836975097656
],
"26-Z3-1": [
446,
-160
],
"26-Z3-2": [
-384.5406188964844,
551.4302368164062
],
"26-Z3-3": [
485,
-81
],
"26-Z3-4": [
-798.0394897460938,
422.3702087402344
],
"26-Z4-1": [
-551.4441557449455,
-38.58561957493338
],
"26-Z4-2": [
-633.6757896792913,
1.4284188628810082
],
"26-Z4-3": [
-332.5494689941406,
180.4159698486328
],
"26-Z4-4": [
-618.3238525390625,
418.6714782714844
],
"27-Z2-1": [
-152.5541534423828,
146.43653869628906
],
"29-Z1-1": [
152,
434
],
"29-Z1-3": [
-166.53085327148438,
205.43795776367188
],
"29-Z1-4": [
-995.0092163085938,
426.0633850097656
],
"29-Z2-1": [
231,
499
],
"29-Z3-1": [
-267.55303955078125,
230.44407653808594
],
"29-Z3-2": [
-241.55032348632812,
488.43450927734375
],
"29-Z3-3": [
470,
-213
],
"29-Z4-3": [
119,
511
],
"31-Z1-1": [
-127,
-262
],
"31-Z1-2": [
-698.3235473632812,
428.5255126953125
],
"31-Z1-4": [
-430.5250549316406,
278.4659423828125
],
"31-Z3-2": [
-894.0621948242188,
424.8323059082031
],
"31-Z3-3": [
-809.14794921875,
274.6507263183594
],
"data": [
-29,
2
],
"jak-resit-ulohy": [
43,
-98
],
"label-1d-pole": [
-120.56800842285156,
53.46208953857422
],
"label-2d-pole": [
-350.5476379394531,
141.41993713378906
],
"label-grafy": [
-789.450927734375,
214.32875061035156
],
"label-grafy-pracovni-poznamka": [
-826.3731079101562,
359.58056640625
],
"label-retezce": [
-209.55250549316406,
410.4397888183594
],
"label-uvod": [
42,
-243
],
"label-zelvy": [
205,
407
],
"placeholder-kurz-programovani": [
452,
62
],
"programovani": [
144,
2
],
"start": [
38,
-176
]
}
}