Tuhle jsem se díval po App Store, jestli tam objevím nějaké slušné aplikace pro výuku programování. Věc se má tak, že dnes sice ?každý umí s počítačem?, ale jenom málokdo umí něco algoritmizovat či dokonce programovat. A algoritmizace je zajímavá věc, třeba už jenom jako mentální cvičení, kterým si tříbíte mysl.
Problém je ale v tom, že jenom málo aplikací je navrženo tak, aby byly dobré jak po technické stránce, tak po stránce výuky programování. V dávné době byl výborný Karel a Logo, v méně dávné potom třeba Colobot. Cargo-Bot se sice tváří jako něco, co by vás mohlo zábavným způsobem seznámit s programováním, bohužel to ale není tak úplně pravda. Ve skutečnosti jde spíš o programátorský puzzle, přesněji řečeno o návrh paměťově efektivního algoritmu, který vyřeší daný problém.
V teorii složitosti je věta, že můžete zaměňovat strojový čas za paměťový prostor, v případě Cargo-Bota jde právě a jenom o ten paměťový prostor ? hra vás hodnotí, na kolik zabraných paměťových buněk se vám podaří zmáčknout řešení. Pokud umístíte bedny z výchozí pozice do cílové, máte to za hvězdičku. Pokud chcete dvě a nebo tři, budete se muset snažit, aby to byl kód co nejkratší. A to je někdy docela ostré.
Věc se má tak, že robot má vlastně jenom tři instrukce: Doprava, doleva a dolů, přičemž instrukce dolů buď vezme první bednu, kterou drapák chytí (byl-li prázdný) a nebo naopak bednu položí na vrchol sloupce (pokud drapák bednu držel). Jakoukoliv akci můžete ?opodmínkovat?, tedy provést ji jenom v případě, že čelisti drapáku svírají kostku určité barvy, nebo v nich nějaká kostka je, případně v nich žádná kostka není.
Tak. A s tímto instrukčním setem musíte napsat program, který z výchozí pozice drapáku přeskládá bedny do nějaké jiné (žádané) konfigurace. Jednak to musí fungovat, jednak nesmíte rozmlátit drapák o krajní zdi a nakonec je to třeba napsat na co nejméně instrukcí. Což je celkem problém, protože často není úplně triviální problém vyřešit ?nějak?, natož pak v kompaktním formátu, na tři hvězdičky. Céčkaři a další milovníci kompaktního kódu se zatetelí blahem.
Kód vkládáte tažením značek do políček. Máte celkem čtyři řádky kódu s labely, první tři mohou mít až 8 instrukcí, poslední jen 5 (patrně proto, aby se tam vešlo Start/Stop tlačítko). K řízení využíváte jedinou funkci, která se chová jako Goto na label, odskok samozřejmě může být podmíněný, jako u ostatních instrukcí. Program vždy začíná běžet na prvním políčku PROG1, ukončovat ho nemusíte, ukončení nastane automaticky poté, co srovnáte požadovanou sestavu beden (a nebo poté, co drapák rozbijete).
Tento mechanismus je jednoduchý, bohužel ale není didakticky zrovna vhodný. Čtení ?program posunu drapáku? není zrovna přehledné a ?vývojové mechanismy? jsou tu zcela rudimentární ? v podstatě jenom Reset a Step (nastavení programu a prostředí do počátečního stavu a potom krokování). První problémy jsou sice jednoduché, ale v podstatě nic vám nebrání v tvorbě toho, co programátoři poeticky nazývají ?vyprasený kód?, tedy kód sice funkční, ale nehezký. Pro začátečníka je vhodnější systém, který ho vede k dekompozici problému do logických částí, ne soutěž o co nejkompaktnější (a při pouhém čtení poměrně nepochopitelnou) sekvenci příkazů.
Cargo-Bot zkrátka není výukový program, je to logický puzzle pro programátorsky laděné hráče. Má príma funkce, například umí vyexportovat chod stroje do videa, které pak lze snadno nauploadovat na YouTube. Když uvážím, že ho tvůrce nabízí zadarmo, tak rozhodně stojí za stažení a vyzkoušení, i když se z něj programovat nenaučíte (alespoň ne čistě). Za zmínku stojí, že celý tento program byl vytvořen přímo na iPadu pomocí systému Codea, který je založen na populárním jazyku Lua.
Hodnocení: 8/10
Verdikt:
Není to výuka programování ? jsou to programátorské optimalizační puzzly. Spíše pro pokročilejší, ale rozhodně zajímavé.
Co se mi líbilo:
- Po vyřešení problému se můžete věnovat jeho následné optimalizaci
- Velmi málo elementů, ale složité problémy
- Je to zadarmo!
Co se mi nelíbilo:
- Příliš málo možností programování
- Didakticky nevhodné pro začátečníky
Cargo-Bot je zdarma!
Aplikace se dá stáhnout odsud
[dmalbum path=“/wp-content/uploads/dm-albums/Cargo-Bot/“/]
Web výrobce je zde
Neexistuje nějaká alternativa pro android?