Hlavní obsah

Programovat může i malé dítě. Vytvořte si svou vlastní hru, zapojíte i AI

Foto: koláž: Pavel Kasík, Seznam Zprávy, AI vizualizace

Programování v nástroji Scratch je uzpůsobeno pro úplné začátečníky. Nenechte se ale zmást, můžete se pustit i do velmi zajímavých projektů.

Reklama

Hodně lidí považuje programování za schopnost málem z jiné planety. Přitom jde v zásadě o jednoduchý koncept, který si mohou rychle osvojit i začátečníci nebo malé děti. Ukážeme si to na třech rychlých a zábavných projektech.

Článek

Jak vlastně fungují počítače? Pokud byste na tuto častou dětskou otázku měli odpovědět vážně, řeč rychle přijde na programování. A než složitě popisovat nějaké abstraktní pojmy, je jednodušší si to vyzkoušet.

Navíc se nám to všem bude hodit, bez ohledu na to, čím se živíme. Programování totiž není jen úkolování počítače. Je to způsob, jak si stanovit cíl a popsat jednotlivé úkony nutné k jeho dosažení. Což je schopnost, kterou se vyplatí trénovat. Zvláště v éře, kdy umělá inteligence otevře programování mnohem širšímu okruhu lidí.

Jednoduchý začátek

Jedním z nejlepších nástrojů pro úplné začátečníky je programovací jazyk Scratch. Vyvinuli jej v Media Lab na americkém MIT a výborně se hodí pro vysvětlení základních i pokročilejších principů programování.

Pro úplně nejmenší uživatele – řekněme od tří do sedmi let – je tu verze Scratch Junior, kterou s dětmi spustíte na tabletu nebo na telefonu (tablet je ale pro dětské prstíky pohodlnější). Pro ovládání není vůbec potřeba umět číst nebo psát, stačí orientovat se v obrázcích a hodí se znát číslice.

Po otevření nového projektu se vám ukáže hlavní rozhraní, ve kterém budete programovat:

Foto: Pavel Kasík, Seznam Zprávy

Rozhraní aplikace Scratch Jr. na tabletu.

Náš první projekt bude jednoduchý. Naučíme se zadávat postavičkám sekvenci příkazů. Dětem to nejčastěji vysvětluji jako recept, podle kterého pak počítač „vaří“ výsledek.

Napřed seženeme ingredience: tedy postavičky, objekty, scény, zvuky atd. A potom vytvoříme návod, podle kterého má počítač s těmito přísadami pracovat. Úkoly zadáváme pomocí příkazů, které mají podobu dílků skládačky. Jejich sestavováním za sebou určujeme jejich sekvenci. Podívejte se na návod ve videu:

Základy programování ve Scratch Junior.Video: Pavel Kasík, Seznam Zprávy

Kočička – hlavní postavička našeho jednoduchého příběhu – přijde ke klukovi, ten nadskočí a kočička se zase vrátí na místo. Pomocí časovače můžeme zajistit jejich vzájemnou interakci. Musíte naměřit nebo odhadnout, na kolik desetin sekundy časovač nastavit, což pochopitelně není ideální, a za chvíli si ukážeme lepší řešení.

Můžete takových sekvencí udělat celou hromadu. Přidávejte postavičky, scény, můžete nakreslit i vlastní objekty. Děti si obvykle užijí spoustu zábavy při nahrávání zvuků. Dá se takto pomocí sekvence (a notnou dávkou trpělivosti) sestavit i celá pohádka.

Složitější programování plné očekávání

Sekvencemi ale programování zdaleka nekončí. Počítač totiž – na rozdíl třeba od kolovrátku – může vyhodnotit aktuální situaci a rozhodnout se na základě naměřených nebo zadaných hodnot, kterou část naprogramované sekvence vykonat.

Je tu několik speciálních dílků, které si zaslouží naši pozornost. Umí posílat zprávy ostatním postavičkám, vytvářet konečné i nekonečné cykly nebo přepínat scény. Právě pochopení těchto podmínek, cyklů, událostíspouštěčů je klíčové pro rozvoj abstraktního myšlení.

Zase ale platí, že nemá cenu děti zahltit nějakou teorií. Vše je nejlépe prezentovat při řešení nějakého konkrétního problému. Jednoduchým způsobem, jak ukázat jejich výhodu, je naprogramovat složitější sekvenci s více postavami, které na sebe nějak reagují.

Kdybychom k tomu využívali jen sekvenci příkazů a časovač, šlo by to těžko. Musíte naměřit nebo odhadnout, na kolik desetin sekundy časovač nastavit. Proto je lepší využít funkci, která „zavolá“ ostatní. V „dospělém“ programování to odpovídá volání funkce nebo spouštěčům událostí. V dětské verzi je to startovací blok s obálkou (někdo vyslal zprávu) nebo kolizí (došlo ke srážce s jinou postavou).

Kombinací těchto spouštěčů můžete udělat celkem komplikované scény. Pokud každé postavě naprogramujete nějaké chování a reakce na ostatní, začne si brzy prostředí žít vlastním životem…

Druhý prográmek ve Scratch Junior.Video: Pavel Kasík, Seznam Zprávy

A vy můžete vymýšlet, co všechno pomocí tohoto systému naprogramujete. Inspiraci najdete na specializovaných stránkách. Doporučuji také proklikat osm ukázkových projektů, které se nacházejí v záložce s otazníkem.

Foto: Pavel Kasík, Seznam Zprávy

Osm projektů, které si můžete proklikat a vyzkoušet si na nich různé kategorie a možnosti příkazů.

Každý jednoduchým způsobem demonstruje některou ze základních funkcí nebo sady příkazů Scratch Jr.

Jdeme o úroveň výše

Pro pokročilejší studenty je tady pak plnohodnotný Scratch. Nabízí i off-line verzi, my budeme pro jednoduchost pracovat s tou webovou. Rozhraní je trochu podobné variantě pro děti, ale na první pohled je vidět, že je tu mnohem více možností.

Foto: Pavel Kasík, Seznam Zprávy

Rozhraní je možné přepnout i do českého jazyka.

Oproti dětské verzi nám zde přibylo několik zásadních věcí:

  • Proměnné: můžete si vytvořit vlastní proměnné, upravovat je a sledovat jejich hodnotu, a na základě této hodnoty pak měnit, co se bude dít.
  • Seznamy: dokonce lze vytvořit i seznam, tedy takové jednoduché pole proměnných. Pak můžete zjišťovat, co je a co není na seznamu, upravovat obsah seznamu atp.
  • Podmínky: můžeme provádět zvolené příkazy jen za určitých podmínek, které si sami nastavíme. Lze se rozhodovat na základě hodnoty proměnné, podle polohy postavy, podle toho, čeho se postava dotýká nebo podle jejich kombinace.
  • Výpočetní operace: najdete zde sčítání, odčítání, násobení, dělení, zbytek po dělení, zaokrouhlení... a taky desítku pokročilejších operací.
  • Logické operátory: při vyhodnocování podmínek můžete použít i operátory AND (platí to i to) nebo OR (platí alespoň jedno z).
  • Cykly: máme tu kromě opakování určitý počet cyklů i neomezené opakování nebo opakování, dokud nedojde ke splnění nějaké podmínky.
  • Vlastní bloky: můžete si v sekci "Moje bloky" vytvořit vlastní blok, což je vlastně taková zkratka, která vám usnadní tvorbu složitějších programů. Schopnost znovu používat již jednou vytvořené bloky kódu se vám bude velmi hodit.
  • Klony: postava může dynamicky vytvářet nebo rušit své vlastní klony.
  • Vstupy: můžete sledovat vstupy z klávesnice, pozici myši nebo třeba pohyb zaznamenaný webovou kamerou.
  • Batoh: můžete přesouvat kusy kódu nebo celé objekty pomocí batohu, jakési schránky napříč projekty.

Pomocí těchto funkcí (a s dávkou trpělivosti a vynalézavosti) už skutečně můžete sestavit i velmi komplexní prográmky. My si tady ukážeme jen jednoduchou hru, kterou ale můžete s dětmi dále vylepšovat.

Foto: Pavel Kasík, Seznam Zprávy

Jednoduchá verze hry Breakout.

Můžete třeba přidat vlastní zvuky, pálku, kterou ovládáte klávesami nebo počítat skóre, přidávat rychlost, měnit směr apod. Pro začátek se podívejte na náš krátký návod:

Programování primitivní hry ve Scratchi.Video: Pavel Kasík, Seznam Zprávy

Jako inspirace při tvorbě pokročilejších her vám může posloužit také toto povedené video, ve kterém se z rychlíku podíváte na tvorbu deseti různých jednoduchých her. Nebo na tohoto programátora, který dělá jednoduchý a pokročilý klon slavné hry FlappyBird.

Zapojíme umělou inteligenci

Na závěr si ukážeme, jak Scratch propojit s umělou inteligencí. Využijeme k tomu klon Scratche Playground AI Blocks, do kterého lze jako modul vložit několik různých modulů. Včetně neuronové sítě vytrénované pomocí naší oblíbené Teachable Machine, které jsme věnovali první díl našeho seriálu.

Napřed si tedy vytrénujeme nový model. Na Teachable Machine natrénujte rozpoznávání toho, kterým směrem ukazuje váš prst: doleva, doprava nebo nahoru. Nezapomeňte také udělat variantu, kdy nikam neukazujete, aby měl model jak rozpoznat neutrální situaci.

Foto: Pavel Kasík, Seznam Zprávy

Trénování Teachable Machine pomocí webkamery.

Vytrénovaný model otestujte a následně exportujte. Vytvoříte URL adresu s modelem (vaše fotky veřejné nebudou, nahrává se pouze vytrénovaný model) a tu následně zkopírujete do svého projektu. Více v našem návodu:

Ovládejte postavu pomocí gest: spojení Scratch + Teachable Machine.Video: Pavel Kasík, Seznam Zprávy

Po importování svého modelu můžete použít rozpoznané kategorie podobně, jako kdybyste rozpoznávali třeba stisky šipek na klávesnici. Nezapomeňte zavřít stránku Teachable Machine, jinak vám v prohlížeči nebude fungovat webová kamera. Můžete naprogramovat třeba pohyb postavy po obrazovce podle toho, kterým směrem ukazujete.

Foto: Pavel Kasík, Seznam Zprávy

Ukázka jednoduchého programu v jazyce Scratch s využitím vytrénované neuronové sítě (Teachable Machine). Program sleduje obraz z webové kamery, a pokud rozpozná, že ukazuji doleva, pohne postavičkou doleva…

Možností, jak takové propojení s vytrénovanou neuronovou sítí využít, je samozřejmě nepřeberně. Zkuste třeba vyrobit jednoduchou hru ovládanou gesty. Nebo program, který bude vyprávět vtipy, a detekuje, jakmile se usmějete.

Důležité je především to, že si spolu s dětmi na vlastní kůži vyzkoušíte, jak programování funguje. Jistě, jazyk Scratch není ideální pro tvorbu aplikací. Ale na základní experimentování se hodí výborně. A propojení s vlastními neuronovými sítěmi tomu dodávají další rozměr.

Jak dětem vysvětlit umělou inteligenci?

Co je to umělá inteligence? Zní to složitě, ale uvidíte, že to může být užitečné, a dokonce je to i zábava. Umělá inteligence funguje na počítači, ale chová se jinak, než jsme u počítačů zvyklí…

Co je to umělá inteligence? Vysvětlení pro děti.Video: Pavel Kasík, Seznam Zprávy

Reklama

Doporučované