Hlavní navigace

Senzory Martina Malého: Hry pro programátory a jedna z nejtěžších her vůbec

Martin Malý

Vždycky jsem říkal, že elektronika a programování je vlastně velice zajímavá a dobrodružná hra. Hrajete vy proti technice, pravidla jsou dána, soupeř je neúprosný a rozhodují jen vaše schopnosti a taktika.

Devětadevadesáté Senzory jsou tu a míří do světa zábavy a her.

Programovací hry jsou velmi staré. Vzpomínám si, že někdy v osmdesátých letech vyšel v mém oblíbeném časopise Věda a technika mládeži článek o hře Odyssea robotů. Moc se mi ta hra líbila, bohužel jsem neměl podporovaný hardware (ani Apple II, ani TRS-80), a tak jsem mohl jen snít.

Princip byl jednoduchý: Musíte se dostat z podzemí hypertechnologického města robotů, přes spoustu místností, v nichž narazíte na nejrůznější problémy. Problémy musíte vyřešit pomocí tří jednoduchých robotických pomocníků. Naštěstí máte k dispozici virtuální páječku a sadu komponent, takže můžete každého robota otevřít a uvnitř popřepojovat tak, aby plnil zadaný úkol. Podle magazínu Slate se jedná o jednu z nejtěžších her vůbec. Můžete si to ověřit, existuje reimplementace v Javě s názvem Droidquest.

Možná znáte hry od společnosti Zachtronics – mezi klasiku žánru „programovatelných her“ se zapsaly například Spacechem a Infinifactory. V těchto hrách sestavujete z omezené sady základních elementů fantaskní „provozy“ a „továrny“ – v podstatě jde vždy o řešení nějakého algoritmu pomocí omezených prostředků. Jakmile úkol splníte, jakkoli, odemykají se vám další levely, ale vy máte možnost ještě předtím zjistit, jak si stojíte v porovnání s ostatními hráči. Můžete se snažit udělat řešení s co nejmenším počtem elementů, nebo třeba co nejrychlejší.

Podobná hra vzniká i v České republice, stojí za ní pražské studio Wube Software a jmenuje se Factorio.

Další hra od Zachtronics, TIS-100, už je opravdu ryzí programátorský oříšek. Žádné 3D bludiště, žádný složitý příběh, jen vy, hardware a sada zapeklitých úloh. V každé z nich máte k dispozici několik paralelně pracujících procesorů (v matici 3 × 4). Každý z nich je propojen se svými sousedy pomocí FIFO front a vaším úkolem je, například, přijímat série čísel na vstupu (každá série je ukončena nulou) a posílat je na výstup v obráceném pořadí. Což zní jednoduše, ale není – každý „procesor“ obsahuje jeden jediný akumulátor, má omezenou sadu instrukcí a omezený počet řádků. V některých úkolech máte místo procesoru jednoduchý zásobník (LIFO), někdy nějaký z procesorů nefunguje… Rychle zjistíte, že třeba brát čísla ze dvou front a násobit je není tak úplně jednoduchá úloha, jak se může na první pohled zdát. A zase můžete překonávat sami sebe a ostatní hráče: vymyslete rychlejší řešení, kratší řešení, …

Velmi podobná hra je Human Resource Machine – zde je v roli procesoru nebohý zaměstnanec korporace: tady vezmi papír, támhle ho polož, sečti tahle dvě čísla, pokud je výsledek 0, stoupni si k tomuto stolu, semhle hoď lejstro…

Zatím poslední hra od Zachtronics se jmenuje Shenzhen I/O – v roli vývojáře fiktivní (alespoň doufám…) čínské firmy vyvíjíte a navrhujete hardware a firmware pro něj.

Poslední hrou, kterou vám chci dnes doporučit, je MHRD. Tato hra není úplně čistě programátorská, spíš hardwarová. Začnete návrhem jednoduchých kombinačních logických obvodů v jazyku, který trochu připomíná VHDL nebo Verilog. Z těchto obvodů stavíte složitější a složitější celky a v posledním levelu poskládáte z logických obvodů vlastní šestnáctibitový procesor. Vážně.

Jmenované hry nejsou úplně jednoduché a pro začátečníky, takže pokud přemýšlíte, že je dáte svým dětem, ať se s nimi učí, možná přeceníte jejich schopnosti. Pokud hledáte hry pro děti, zkuste se porozhlédnout třeba v tomto seznamu.

Našli jste v článku chybu?