Neděle, 29 září, 2024
Google search engine
DomůZpravodajstvíI vy teď můžete programovat. Vyrobte si s dětmi návykový simulátor rakety

I vy teď můžete programovat. Vyrobte si s dětmi návykový simulátor rakety

Hledáte prázdninový projekt, do kterého se s dětmi pustit? Který zabere právě tolik času, kolik mu chcete dát? Zkuste žhavou novinku – veřejnosti je přístupná sotva tři týdny – a naprogramujte, co budete chtít. Je to o dost jednodušší, než si asi myslíte. Ale chyby se samozřejmě objevují, jako ostatně ve všem, co se týká generativní umělé inteligence.

V rámci seriálu Hrajeme si s AI jsme loni ukázali i základy programování pro děti. Už tenkrát bylo samozřejmě možné zapřáhnout ChatGPT i k programování. Bylo to ale naprosto nepraktické pro kohokoli, kdo nezná alespoň základy počítačového kódu a jeho spouštění. Pustit se do programování s chatbotem tehdy bylo pro začátečníky celkem frustrující.

Nyní je situace o dost jiná. Chatbot Claude od firmy Anthropic má nyní nejenom rychlejší verzi, ale také funkci Artifacts, která umožňuje plynulé psaní instrukcí a sledování výsledků na jedné obrazovce. Vlevo si s chatbotem povídáte a přidáváte instrukce. Vpravo vzniká váš program (zde hra Had) a vy si ji můžete hned otestovat.

Podívejte se, jak to funguje v praxi:

Programování jednoduché hry pomocí nástroje Claude 3.5 Sonnet a zapnuté funkce Artifacts.Video: Pavel Kasík, Seznam Zprávy

Už dříve jste samozřejmě vygenerovaný kód mohli z chatbota zkopírovat do externího editoru, uložit a spustit. Teď se to děje samo a překvapivě rychle. Zní to jako maličkost, která ale může programování zpřístupnit i lidem, kteří se jej zatím báli.

Navíc je tato experimentální funkce dostupná zdarma pro kohokoli, není potřeba platit prémiovou verzi (bezplatná verze má omezený počet zadání). Podíváme se tedy, jak s pomocí Clauda naprogramovat něco, co si užijí rodiče i děti. Třeba nějakou „retro“ počítačovou hru.

Jak začít? Jakkoli…

Zatímco skutečné programování je disciplína dosti přísná, ve spolupráci s chatbotem je to naopak velice neformální záležitost. Proto zde místo vyčerpávajícího návodu najdete spíše pár tipů do začátku.

První pravidlo zní, že nejsou pravidla. Pokud chcete vy, nebo děti něco zkusit, tak to zkuste. Veškerý kód se spouští přímo v prohlížeči a tak by se nemělo stát, že provedete něco, čeho byste litovali. Maximálně se vám stránka zasekne a vy ji obnovíte. Náš první krok tedy může vypadat takto: Naprogramuj hru had v HTML, ovládat ji budu tlačítky ASDW na klávesnici.

Foto: Pavel Kasík, Seznam Zprávy

Nemusíte psát dlouhé instrukce, pro začátek bude stačit úplně jednoduchý povel.

Pokud máte zapnutou funkci Artifacts (kliknutím na ikonku vlevo dole, Feature Preview, Artifacts – On), začne vám chatbot okamžitě generovat hromadu kódu. Když je hotový, přepne se do zobrazení náhledu. A vy tak hned vidíte, co jste zatím vytvořili, respektive co vám vyrobil chatbot.

Foto: Pavel Kasík, Seznam Zprávy

Vlevo konverzace s chatbotem, vpravo náhled vytvořené HTML stránky včetně funkčního skriptu. Můžete se také přepnout do zobrazení zdrojového kódu nebo si výsledek stáhnout na svůj počítač jako .html soubor.

Váš výsledek může vypadat úplně jinak než to, co chatbot vyrobil mně. A to dokonce i kdybyste zadali navlas stejnou instrukci. Tohle spoluvytváření je spíše taková alchymie. Nezdráhejte se proto říci si o cokoli, co vás napadne.

Hru had jsem postupně vylepšil takto:

  • Dej hře černé pozadí.
  • Doplň pod hrací plochu tlačítka, aby šla hrát na mobilu, udělej hru responzivní.
  • Přidej zvuky (pomocí funkce oscilator).
  • Přidej tenké šedé orámování každému čtverečku.
  • Přidej ukládání nejvyššího dosaženého skóre.

Jinými slovy, komunikujete s chatbotem, jako kdyby to byl váš dvorní programátor. V něčem je to programátor nadprůměrně schopný, jinde zase dělá primitivní chyby. Co se mu ale nedá upřít: je neuvěřitelně trpělivý. I proto mu můžete zadávat své legrační nápady a on je vždycky vezme vážně. Pro kreativní projekty je to ideální kombinace.

Chybami se člověk učí. AI moc ne

Aby mělo toto experimentování i nějakou pedagogickou hodnotu, požádejte chatbot, aby vám vždy vysvětlil, co udělal a proč. Můžete také chtít detailní komentáře přímo ve zdrojovém kódu.

Pokud máte raději vizuální diagramy, můžete si je nechat vygenerovat přímo na míru: Chtěl bych se také naučit programovat, ale zatím nerozumím javascriptu. Ukaž mi přehledné schéma celého kódu, abych pochopil, jak funguje. Nějak hezky graficky, abych to pochopil.

Foto: Pavel Kasík, Seznam Zprávy

Část diagramu znázorňujícího, jak kód funguje.

Právě takováto schémata pomohou dětem lépe pochopit to, co by ze zdrojového kódu nevyčetly. Že se program rozhoduje na základě jasně daných příkazů a že musíme předem promyslet všechny eventuality a popsat, co se má v takovém případě stát.

Časté problémy a jejich řešení

Stalo se vám, že se dříve funkční program z ničeho nic rozpadl a přestal fungovat?

  • Můžete se vrátit k předchozí verzi pomocí listovátka dole.
  • Můžete se vrátit v konverzaci s chatbotem a upravit svoji předchozí instrukci tak, aby se této chybě předešlo.
  • Můžete se podívat do zdrojového kódu. Pokud tam najdete něco jako „tato část kódu zůstává stejná“, chatbot si chtěl ušetřit práci a nevyšlo to. Dejte mu instrukci: „Musíš vždy vygenerovat celý kód, nemůžeš nějakou dřívější část vynechat.“

Objevila se vám nějaká chyba pod náhledem Artifacts?

  • Chybu můžete zkopírovat chatbotu (vlevo) a třeba si s ní poradí.
  • Můžete také stáhnout HTML soubor a zkusit, jestli to není jen kvůli tomu, že se spouští v malém zobrazení.

Kód byl příliš dlouhý a nevešel se do limitu?

  • Můžete požádat o úspornější zápis: „Piš skript úsporně a bez dlouhých komentářů. Jinak se nevejdeš do limitu pro odpověď.“

Vůbec nevím, v čem je chyba, ale nejde to opravit…

  • Nejlepší možná bude začít znova, úplně novou konverzaci.

Nechci používat Claude.

  • Většinu toho, co jsme si tu ukázali, jde i v konkurenčních chatbotech, konkrétně v ChatGPT nebo Gemini. Jen budete muset kód, který vám chatbot vytvoří, zkopírovat do nějakého editoru a možná také poslepovat kusy kódu (HTML, styly CSS a skripty JS) dohromady. Je to méně pohodlné, ale jde to.

Nerad bych, aby to vypadalo, jako že si Claude poradí se vším. Zdaleka ne. Pořád je to jen jazykový model, který za sebe skládá písmenka a slova. Výsledky jsou často použitelné. Jindy jsou to ale úplné nesmysly, a konverzace se točí v kruzích. I to je ale součástí společného poznávání toho, co nyní umělá inteligence zvládne a co ještě ne.

Fantazii se meze (již) nekladou

Hra typu Had je docela primitivní. Není důvod držet se tak při zemi. Pojďme udělat simulátor rakety. Tentokrát si dáme na popisu více záležet a nenecháme nic náhodě. Zkusíme, jestli to povede k lepším výsledkům hned napoprvé, nebo jestli to naopak bude na Clauda až moc velké sousto.

Chci vytvořit hru, která používá html+css+js a umožňuje simulaci přistávání jednoduché rakety. Hra bude responzivní, černá hrací plocha má formát 4:3 a zobrazuje se do šířky okna, maximálně 800 px. Pod hrací plochou jsou tři tlačítka: doleva, nahoru, doprava. Kromě toho je možné ovládat hru i kurzorovými klávesami. Raketa červená, plamen trysky oranžový, design moderní a jednoduchý pixel-art. Náhodně buď nalevo nebo napravo dole hrací plochy je plocha na přistání, na zelené plošině. Před startem hry ukaž nad hrací plochou krátké vysvětlení hry, posuvník a tlačítko start, po jeho stisknutí vysvětlení zmizí a hra začíná. Posuvník umožňuje zvolit obtížnost (míru gravitace v procentech), výchozí je 50 %. Po úspěšném nebo neúspěšném přistání zpráva o úspěchu, nebo neúspěchu. Uživatel by měl vlevo neustále vidět aktuální horizontální a vertikální rychlost v km/h. Limit pro bezpečné přistání je pět km/h vertikální a dva km/h horizontální. Klávesa doleva i doprava otáčí raketu, klávesa nahoru je hlavní tryska (ve směru rakety). Výsledek by měl jít hrát na mobilu i na počítači. Při kontaktu s horním okrajem hrací plochy hra končí neúspěchem, při kontaktu s levým okrajem se raketa objeví vpravo a naopak, při kontaktu dole mimo přistávací plošinu také neúspěch. Exploze je animovaná pomocí rychle rostoucího mizícího oranžového kruhu.

Tak co, zvládl to? Řekl bych, že vyhověl všem mým požadavkům hned napoprvé. Některé věci jsem si představoval jinak, ale výsledek je nejen funkční, ale dokonce i hratelný.

Foto: Pavel Kasík, Seznam Zprávy

Jednoduchá hra za pár minut.

Výslednou stránku html si můžete prohlédnout zde. Doporučuji nastavit Obtížnost na asi 20 %, jinak je hra prakticky nehratelná. Do kódu jsem ale nijak nezasahoval. Vylepšení mne samozřejmě napadá celá řada, a vás určitě taky. Tak do toho. Pro inspiraci můžete třeba:

  • Vyladit limity a hodnoty tak, aby byla hra hratelná.
  • Vylepšit návod na začátku hry.
  • Upravit tlačítka tak, aby se hra lépe hrála.
  • Přidat zvuky pro raketový motor a pro explozi.
  • Přidat nějaké překážky.
  • Vymyslet systém úrovní.
  • Vymyslet, jak hru hrát na počítači ve dvou lidech.
  • Ukládat nejvyšší skóre (pozor, Artifacts nemají přístup do localStorage, takže to bude hlásit chybu).
  • Sbírat po cestě bonusové body.
  • Předělat to celé do tří rozměrů…

Počínaje tímto létem se ze všech lidí stali programátoři, chtělo by se říci. Ale to by bylo dost zavádějící. Programování jako takové je hodně široká disciplína, a jen některé relativně malé části programování lze dnes zcela nechat na rozmarech umělé inteligence.

Podle mého rozhodně má cenu učit se programovat i dnes. Právě k tomu je tento nástroj výborný. Můžete si totiž s dětmi – i bez nich – vyzkoušet, jak formulovat své nápady, stavět na nich, hledat chyby a postupně projekt vylepšovat. A hlavně jak vytvořit něco, co bude ostatní lidi bavit a bude to pro ně použitelné.

To jsou ty schopnosti, které nevyjdou z módy. Ani teď, kdy se do programování může směle pustit i malé dítě.

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

RELATED ARTICLES
- Advertisment -
Google search engine

Populární články

BLOG

I vy teď můžete programovat. Vyrobte si s dětmi návykový simulátor rakety

Hledáte prázdninový projekt, do kterého se s dětmi pustit? Který zabere právě tolik času, kolik mu chcete dát? Zkuste žhavou novinku – veřejnosti je přístupná sotva tři týdny – a naprogramujte, co budete chtít. Je to o dost jednodušší, než si asi myslíte. Ale chyby se samozřejmě objevují, jako ostatně ve všem, co se týká generativní umělé inteligence.

V rámci seriálu Hrajeme si s AI jsme loni ukázali i základy programování pro děti. Už tenkrát bylo samozřejmě možné zapřáhnout ChatGPT i k programování. Bylo to ale naprosto nepraktické pro kohokoli, kdo nezná alespoň základy počítačového kódu a jeho spouštění. Pustit se do programování s chatbotem tehdy bylo pro začátečníky celkem frustrující.

Nyní je situace o dost jiná. Chatbot Claude od firmy Anthropic má nyní nejenom rychlejší verzi, ale také funkci Artifacts, která umožňuje plynulé psaní instrukcí a sledování výsledků na jedné obrazovce. Vlevo si s chatbotem povídáte a přidáváte instrukce. Vpravo vzniká váš program (zde hra Had) a vy si ji můžete hned otestovat.

Podívejte se, jak to funguje v praxi:

Programování jednoduché hry pomocí nástroje Claude 3.5 Sonnet a zapnuté funkce Artifacts.Video: Pavel Kasík, Seznam Zprávy

Už dříve jste samozřejmě vygenerovaný kód mohli z chatbota zkopírovat do externího editoru, uložit a spustit. Teď se to děje samo a překvapivě rychle. Zní to jako maličkost, která ale může programování zpřístupnit i lidem, kteří se jej zatím báli.

Navíc je tato experimentální funkce dostupná zdarma pro kohokoli, není potřeba platit prémiovou verzi (bezplatná verze má omezený počet zadání). Podíváme se tedy, jak s pomocí Clauda naprogramovat něco, co si užijí rodiče i děti. Třeba nějakou „retro“ počítačovou hru.

Jak začít? Jakkoli…

Zatímco skutečné programování je disciplína dosti přísná, ve spolupráci s chatbotem je to naopak velice neformální záležitost. Proto zde místo vyčerpávajícího návodu najdete spíše pár tipů do začátku.

První pravidlo zní, že nejsou pravidla. Pokud chcete vy, nebo děti něco zkusit, tak to zkuste. Veškerý kód se spouští přímo v prohlížeči a tak by se nemělo stát, že provedete něco, čeho byste litovali. Maximálně se vám stránka zasekne a vy ji obnovíte. Náš první krok tedy může vypadat takto: Naprogramuj hru had v HTML, ovládat ji budu tlačítky ASDW na klávesnici.

Foto: Pavel Kasík, Seznam Zprávy

Nemusíte psát dlouhé instrukce, pro začátek bude stačit úplně jednoduchý povel.

Pokud máte zapnutou funkci Artifacts (kliknutím na ikonku vlevo dole, Feature Preview, Artifacts – On), začne vám chatbot okamžitě generovat hromadu kódu. Když je hotový, přepne se do zobrazení náhledu. A vy tak hned vidíte, co jste zatím vytvořili, respektive co vám vyrobil chatbot.

Foto: Pavel Kasík, Seznam Zprávy

Vlevo konverzace s chatbotem, vpravo náhled vytvořené HTML stránky včetně funkčního skriptu. Můžete se také přepnout do zobrazení zdrojového kódu nebo si výsledek stáhnout na svůj počítač jako .html soubor.

Váš výsledek může vypadat úplně jinak než to, co chatbot vyrobil mně. A to dokonce i kdybyste zadali navlas stejnou instrukci. Tohle spoluvytváření je spíše taková alchymie. Nezdráhejte se proto říci si o cokoli, co vás napadne.

Hru had jsem postupně vylepšil takto:

  • Dej hře černé pozadí.
  • Doplň pod hrací plochu tlačítka, aby šla hrát na mobilu, udělej hru responzivní.
  • Přidej zvuky (pomocí funkce oscilator).
  • Přidej tenké šedé orámování každému čtverečku.
  • Přidej ukládání nejvyššího dosaženého skóre.

Jinými slovy, komunikujete s chatbotem, jako kdyby to byl váš dvorní programátor. V něčem je to programátor nadprůměrně schopný, jinde zase dělá primitivní chyby. Co se mu ale nedá upřít: je neuvěřitelně trpělivý. I proto mu můžete zadávat své legrační nápady a on je vždycky vezme vážně. Pro kreativní projekty je to ideální kombinace.

Chybami se člověk učí. AI moc ne

Aby mělo toto experimentování i nějakou pedagogickou hodnotu, požádejte chatbot, aby vám vždy vysvětlil, co udělal a proč. Můžete také chtít detailní komentáře přímo ve zdrojovém kódu.

Pokud máte raději vizuální diagramy, můžete si je nechat vygenerovat přímo na míru: Chtěl bych se také naučit programovat, ale zatím nerozumím javascriptu. Ukaž mi přehledné schéma celého kódu, abych pochopil, jak funguje. Nějak hezky graficky, abych to pochopil.

Foto: Pavel Kasík, Seznam Zprávy

Část diagramu znázorňujícího, jak kód funguje.

Právě takováto schémata pomohou dětem lépe pochopit to, co by ze zdrojového kódu nevyčetly. Že se program rozhoduje na základě jasně daných příkazů a že musíme předem promyslet všechny eventuality a popsat, co se má v takovém případě stát.

Časté problémy a jejich řešení

Stalo se vám, že se dříve funkční program z ničeho nic rozpadl a přestal fungovat?

  • Můžete se vrátit k předchozí verzi pomocí listovátka dole.
  • Můžete se vrátit v konverzaci s chatbotem a upravit svoji předchozí instrukci tak, aby se této chybě předešlo.
  • Můžete se podívat do zdrojového kódu. Pokud tam najdete něco jako „tato část kódu zůstává stejná“, chatbot si chtěl ušetřit práci a nevyšlo to. Dejte mu instrukci: „Musíš vždy vygenerovat celý kód, nemůžeš nějakou dřívější část vynechat.“

Objevila se vám nějaká chyba pod náhledem Artifacts?

  • Chybu můžete zkopírovat chatbotu (vlevo) a třeba si s ní poradí.
  • Můžete také stáhnout HTML soubor a zkusit, jestli to není jen kvůli tomu, že se spouští v malém zobrazení.

Kód byl příliš dlouhý a nevešel se do limitu?

  • Můžete požádat o úspornější zápis: „Piš skript úsporně a bez dlouhých komentářů. Jinak se nevejdeš do limitu pro odpověď.“

Vůbec nevím, v čem je chyba, ale nejde to opravit…

  • Nejlepší možná bude začít znova, úplně novou konverzaci.

Nechci používat Claude.

  • Většinu toho, co jsme si tu ukázali, jde i v konkurenčních chatbotech, konkrétně v ChatGPT nebo Gemini. Jen budete muset kód, který vám chatbot vytvoří, zkopírovat do nějakého editoru a možná také poslepovat kusy kódu (HTML, styly CSS a skripty JS) dohromady. Je to méně pohodlné, ale jde to.

Nerad bych, aby to vypadalo, jako že si Claude poradí se vším. Zdaleka ne. Pořád je to jen jazykový model, který za sebe skládá písmenka a slova. Výsledky jsou často použitelné. Jindy jsou to ale úplné nesmysly, a konverzace se točí v kruzích. I to je ale součástí společného poznávání toho, co nyní umělá inteligence zvládne a co ještě ne.

Fantazii se meze (již) nekladou

Hra typu Had je docela primitivní. Není důvod držet se tak při zemi. Pojďme udělat simulátor rakety. Tentokrát si dáme na popisu více záležet a nenecháme nic náhodě. Zkusíme, jestli to povede k lepším výsledkům hned napoprvé, nebo jestli to naopak bude na Clauda až moc velké sousto.

Chci vytvořit hru, která používá html+css+js a umožňuje simulaci přistávání jednoduché rakety. Hra bude responzivní, černá hrací plocha má formát 4:3 a zobrazuje se do šířky okna, maximálně 800 px. Pod hrací plochou jsou tři tlačítka: doleva, nahoru, doprava. Kromě toho je možné ovládat hru i kurzorovými klávesami. Raketa červená, plamen trysky oranžový, design moderní a jednoduchý pixel-art. Náhodně buď nalevo nebo napravo dole hrací plochy je plocha na přistání, na zelené plošině. Před startem hry ukaž nad hrací plochou krátké vysvětlení hry, posuvník a tlačítko start, po jeho stisknutí vysvětlení zmizí a hra začíná. Posuvník umožňuje zvolit obtížnost (míru gravitace v procentech), výchozí je 50 %. Po úspěšném nebo neúspěšném přistání zpráva o úspěchu, nebo neúspěchu. Uživatel by měl vlevo neustále vidět aktuální horizontální a vertikální rychlost v km/h. Limit pro bezpečné přistání je pět km/h vertikální a dva km/h horizontální. Klávesa doleva i doprava otáčí raketu, klávesa nahoru je hlavní tryska (ve směru rakety). Výsledek by měl jít hrát na mobilu i na počítači. Při kontaktu s horním okrajem hrací plochy hra končí neúspěchem, při kontaktu s levým okrajem se raketa objeví vpravo a naopak, při kontaktu dole mimo přistávací plošinu také neúspěch. Exploze je animovaná pomocí rychle rostoucího mizícího oranžového kruhu.

Tak co, zvládl to? Řekl bych, že vyhověl všem mým požadavkům hned napoprvé. Některé věci jsem si představoval jinak, ale výsledek je nejen funkční, ale dokonce i hratelný.

Foto: Pavel Kasík, Seznam Zprávy

Jednoduchá hra za pár minut.

Výslednou stránku html si můžete prohlédnout zde. Doporučuji nastavit Obtížnost na asi 20 %, jinak je hra prakticky nehratelná. Do kódu jsem ale nijak nezasahoval. Vylepšení mne samozřejmě napadá celá řada, a vás určitě taky. Tak do toho. Pro inspiraci můžete třeba:

  • Vyladit limity a hodnoty tak, aby byla hra hratelná.
  • Vylepšit návod na začátku hry.
  • Upravit tlačítka tak, aby se hra lépe hrála.
  • Přidat zvuky pro raketový motor a pro explozi.
  • Přidat nějaké překážky.
  • Vymyslet systém úrovní.
  • Vymyslet, jak hru hrát na počítači ve dvou lidech.
  • Ukládat nejvyšší skóre (pozor, Artifacts nemají přístup do localStorage, takže to bude hlásit chybu).
  • Sbírat po cestě bonusové body.
  • Předělat to celé do tří rozměrů…

Počínaje tímto létem se ze všech lidí stali programátoři, chtělo by se říci. Ale to by bylo dost zavádějící. Programování jako takové je hodně široká disciplína, a jen některé relativně malé části programování lze dnes zcela nechat na rozmarech umělé inteligence.

Podle mého rozhodně má cenu učit se programovat i dnes. Právě k tomu je tento nástroj výborný. Můžete si totiž s dětmi – i bez nich – vyzkoušet, jak formulovat své nápady, stavět na nich, hledat chyby a postupně projekt vylepšovat. A hlavně jak vytvořit něco, co bude ostatní lidi bavit a bude to pro ně použitelné.

To jsou ty schopnosti, které nevyjdou z módy. Ani teď, kdy se do programování může směle pustit i malé dítě.

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

RELATED ARTICLES