Nastavitelná hrací kostka s microbitem

Zatřes, nastav si vlastní pravidla a pusť se do hry
Figurky stojí na startu, herní plán je připravený a kostka zase někam zmizela. Máte po ruce micro:bit? Za chvíli si naprogramujete vlastní. Zatřesením hodíte, tlačítky změníte počet možných výsledků a ze šestistěnné kostky uděláte třeba dvacetistěnnou! Stačí trochu upravit pravidla a Člověče, nezlob se můžete mít s takovou kostkou odehrané cobydup. Přitom zjistíte, jak program pracuje s proměnnou, proč potřebuje podmínky a co vlastně znamená náhoda.

Projekt se hodí pro začátečníky doma, ve škole i v kroužku. Na základní program si vyhraďte přibližně 30 až 45 minut podle zkušeností. Pokud přidáte vlastní deskovku a pokusy s pravděpodobností, máte námět i na další hodinu.
Obsah článku:
Co si připravit
- micro:bit V2 s vestavěným reproduktorem,
- počítač s internetovým prohlížečem a datový USB kabel,
- volitelně bateriový držák pro micro:bit s bateriemi AAA, abyste mohli hrát bez USB kabelu,
- papír a tužku na vlastní pravidla a zaznamenávání hodů.
Program vytvoříme v online editoru MakeCode pro micro:bit. Nemáte desku po ruce? Začněte v jeho simulátoru. Použitý zvukový efekt giggle vyžaduje micro:bit V2.
Jak se bude naše kostka ovládat
Po zapnutí se nastaví šest možných výsledků, tedy klasická šestistěnná kostka. Tlačítky A a B pak můžete měnit horní hranici losování. Když nastavíte například číslo 8, při hodu může padnout kterékoli celé číslo od 1 do 8 včetně.
| Co uděláte | Co provede program |
|---|---|
| Zapnete nebo restartujete micro:bit | Nastaví šest možných výsledků a zobrazí číslo 6. |
| Zatřesete micro:bitem | Přehraje giggle, vylosuje a zobrazí číslo od 1 do maxima a poté krátce pípne. |
| Stisknete A | Sníží maximum o 1, nejníže na 1. |
| Stisknete B | Zvýší maximum o 1, nejvýše na 20. |
| Stisknete A a B současně | Vrátí maximum na 6. |
Po stisku tlačítka vidíte nastavení, po zatřesení výsledek hodu. To je dobré vysvětlit i spoluhráčům. Dvacítka je náš zvolený limit pro tento projekt; micro:bit umí pracovat i s většími čísly.
Odkud se bere hod
Micro:bit má vestavěný akcelerometr, čidlo měřící zrychlení. Díky němu dokáže rozpoznat zatřesení. Tím spustí příslušnou část programu, která vybere číslo a zobrazí ho na LED displeji.
Samotné čidlo číslo na kostce nevybírá. To zařídí programový generátor pseudonáhodných čísel. Pro naše hraní mu budeme říkat jednoduše náhoda. Silnější zatřesení v tomto programu nezvyšuje šanci na šestku. Desku proto pevně držte v ruce a krátce s ní zatřeste.
Sestavujeme program v MakeCode
Otevřete makecode.microbit.org, vytvořte nový projekt a pojmenujte ho třeba Nastavitelná kostka. V blocích využijeme kategorie Základní, Vstup, Proměnné, Matematika, Logika a nově také Hudba.
1 Vytvoříme proměnnou pro počet stěn
V kategorii Proměnné vytvořte proměnnou pocetSten. Představte si ji jako označenou krabičku v paměti: jméno zůstává, uložené číslo můžeme měnit. V našem programu bude obsahovat počet možných výsledků, a tím i nejvyšší číslo na kostce.
Do bloku při startu vložte nastavení pocetSten na 6. Pod něj přidejte zobrazení čísla pocetSten. Po spuštění tak hned poznáte, s jakou kostkou začínáte.
2 Zatřesení spustí losování
Z kategorie Vstup přetáhněte událost pro zatřesení. Dovnitř vložte vymazání displeje, přehrání zvukového efektu giggle z kategorie Hudba v režimu do konce (UntilDone) a zobrazení čísla. Místo pevného čísla vložte z Matematiky náhodné celé číslo od 1 do pocetSten.
Displej zůstane během zvuku zhasnutý, takže poznáte nový hod i tehdy, když dvakrát za sebou padne stejné číslo. Samostatnou pauzu nepotřebujeme: režim UntilDone počká na dohrání efektu a teprve potom pokračuje zobrazením výsledku. Hodnotu pocetSten při losování neměníme.
Kostka se nejprve zachichotá a pak ukáže, co padlo. Za zobrazení výsledku ještě přidejte z kategorie Hudba přehrání tónu 523 Hz na 150 ms jako krátké potvrzovací pípnutí. V příkazu playTone první číslo určuje výšku tónu a druhé jeho délku v milisekundách; žádnou další proměnnou nepotřebujeme.
3 Tlačítko A ubírá s rozumem
Přidejte událost pro stisk tlačítka A. Do ní vložte podmínku pokud pocetSten > 1, a teprve dovnitř podmínky změnu pocetSten o −1. Za podmínku přidejte zobrazení pocetSten, aby se aktuální nastavení ukázalo i při dosažení spodní hranice.
Proč hlídat právě jedničku? Z hodnoty 1 už nechceme ubírat. Nula možných výsledků nedává pro losování od 1 do nastaveného maxima smysl. Podmínka „větší než 0“ by ještě dovolila změnu z 1 na 0. Tady je tedy správně větší než 1.
Jednostěnná kostka samozřejmě pokaždé ukáže jedničku. Napětí při hře bude malé, ale pro ověření programu se takové nastavení výborně hodí. A všimněte si: podmínka rozhoduje, zda se příkaz provede. Sama nic neopakuje, není to smyčka.
4 Tlačítko B přidává až do dvaceti
U tlačítka B sestavte podobnou událost. Použijte podmínku pokud pocetSten < 20 a uvnitř zvětšete proměnnou o 1. Za podmínkou opět zobrazte pocetSten. Vyzkoušíte si tak spodní i horní mez, tedy pravidla, která udržují nastavení v povoleném rozsahu.
Víceciferné číslo se na malém displeji posouvá. Pokud nastavíte třeba 12, počkejte, až celé přejede. Další tlačítko nebo hod vyzkoušejte až po dokončení zobrazení. Při rychlém mačkání se stisky mohou nahromadit ve frontě (bufferu), takže po opakovaném mačkání A na jedničce chvíli počkejte, než začnete tlačítkem B zase přidávat.
5 Přidáme rychlý návrat k běžné kostce
Vytvořte ještě událost pro současný stisk A+B. Nastavte v ní pocetSten na 6 a hodnotu zobrazte. Je to drobnost, kterou při střídání her oceníte: ze dvacetistěnné kostky jste jedním krokem zpátky u klasiky.
Celý program pohromadě
Chcete si řešení nejprve prohlédnout? V novém projektu přepněte na záložku JavaScript, nahraďte obsah následujícím kódem a pak se vraťte na Bloky. MakeCode používá v této záložce svou podporovanou podobu TypeScriptu; následující zápis odpovídá popsaným blokům.
input.onGesture(Gesture.Shake, function () {
basic.clearScreen()
music.play(music.builtinPlayableSoundEffect(soundExpression.giggle), music.PlaybackMode.UntilDone)
basic.showNumber(randint(1, pocetSten))
music.playTone(523, 150)
})
input.onButtonPressed(Button.A, function () {
if (pocetSten > 1) {
pocetSten += -1
}
basic.showNumber(pocetSten)
})
input.onButtonPressed(Button.AB, function () {
pocetSten = 6
basic.showNumber(pocetSten)
})
input.onButtonPressed(Button.B, function () {
if (pocetSten < 20) {
pocetSten += 1
}
basic.showNumber(pocetSten)
})
let pocetSten = 0
pocetSten = 6
basic.showNumber(pocetSten)
Jak vypadají bloky přímo v MakeCode?
Bloky programu si můžete prohlédnout přímo v náhledu níže. Kliknutím na ikonu v pravém horním rohu otevřete celý projekt v editoru MakeCode, kde ho můžete dál upravovat.
Než začnete hrát
V simulátoru použijte tlačítka A, B, A+B a ovládání zatřesení označené SHAKE. Potom připojte skutečný micro:bit datovým USB kabelem. Přes tlačítko Stáhnout získáte soubor .hex. Ten zkopírujte na disk s názvem MICROBIT, který se po připojení desky objeví v počítači. Pokud máte nastavené přímé nahrávání z editoru, můžete použít i to.
Ověřte nejen běžný hod, ale hlavně hranice. Ty často odhalí chybu rychleji než deset náhodných pokusů.
| Zkouška | Očekávaný výsledek |
|---|---|
| Po startu stiskněte A a potom B. | Nastavení se změní z 6 na 5 a zpět na 6. |
| Snižte nastavení na 1 a znovu stiskněte A. | Zůstane 1. Každý následný hod vrátí 1. |
| Zvyšte nastavení na 20 a znovu stiskněte B. | Zůstane 20. Hody musí ležet mezi 1 a 20. |
| Při jiném nastavení stiskněte A+B. | Maximum se vrátí na 6. |
Padlo dvakrát stejné číslo? To je v pořádku. Pokud se ale po každém hodu samovolně mění i nastavené maximum, zkontrolujte, zda výsledek losování omylem neukládáte do proměnné pocetSten.
Má naše kostka oblíbené číslo?
Nastavte šest možných výsledků. Ještě před prvním hodem odhadněte, kolikrát při 60 hodech padne šestka. Potom vytvořte šest sloupců označených čísly 1 až 6 a zaznamenejte každý výsledek čárkou. Ve dvojici může jeden házet a druhý zapisovat; v polovině si role vyměňte.

U rovnoměrného losování je pravděpodobnost každého čísla jedna šestina. Při 60 hodech proto očekáváme v průměru deset výskytů každého výsledku. Neznamená to ale, že ve vašem pokusu musí mít všechny sloupce přesně deset čárek. Právě rozdíly mezi odhadem a měřením stojí za prozkoumání.
Výsledky několika dvojic spojte a nakreslete sloupcový graf. Porovnávejte podíly jednotlivých výsledků, zvlášť pokud skupiny provedly různý počet hodů. Například 10 šestek ze 60 hodů představuje stejný podíl jako 20 šestek ze 120 hodů – v obou případech padla šestka v jedné šestině hodů. Větší soubor dat obvykle ukazuje rovnoměrnost lépe, ale nezaručuje přesně stejné počty. Ani několik šestek za sebou samo o sobě nedokazuje chybu programu.
Otázka do diskuse: když šestka dlouho nepadla, má při příštím nezávislém hodu větší šanci? Nemá. Předchozí neúspěchy jí nevytvářejí žádný dluh, který by kostka musela splatit.
Vlastní deskovka s nastavitelnou kostkou
Teď dejte elektronice vlastní herní svět. Na papír nakreslete plán, vymyslete příběh a napište pravidla. Můžete třeba prozkoumávat planetu: na bezpečné cestě se losuje od 1 do 8, v jeskyni jen od 1 do 3. Před každým hodem nastavte rozsah podle místa, kde figurka stojí.
Zkuste změnit jednu věc a sledujte, co se stane. Zrychlí větší rozsah cestu k cíli? Nebo ve vaší hře způsobí, že hráči často přeskakují užitečná políčka? Nechte jinou dvojici odehrát několik kol pouze podle napsaných pravidel. Pokud se spolužáci při hraní musí na něco doptávat, využijte jejich otázky k doplnění nebo zpřesnění pravidel.
Právě tady se přirozeně propojí STEAM – přírodní vědy, technologie, technické navrhování, umění a matematika. Zkoumáte pohybové čidlo a výsledky pokusu, programujete zařízení, navrhujete jeho ovládání, výtvarně tvoříte herní svět a počítáte, kolikrát které číslo padlo. Pokud přidáte kartonový držák, vyzkoušejte, zda v něm jde desku pohodlně držet, číst displej a mačkat tlačítka.
Další výzvy pro zvídavé bastlíře
- Místo číslic tečky. Pro výsledky 1 až 6 vytvořte obrázky klasické kostky. Předem rozhodněte, jak se program zachová při větším nastaveném rozsahu.
- Dvě kostky najednou. Sečtěte dva samostatné hody od 1 do 6. Porovnejte výsledky s jediným losováním od 2 do 12. U součtu dvou kostek může sedmička vzniknout šesti dvojicemi, dvojka jen dvojicí 1 a 1. Rozdělení výsledků se proto liší.
- Srozumitelnější displej. Před zobrazením nastavení přidejte písmeno N. Spoluhráči tak snáze poznají, že jde o počet možností, nikoli výsledek hodu.
- Ovládání bez zatřesení. Upravte A+B tak, aby místo resetu spustilo hod. Pak si s vámi může zahrát i člověk, kterému zatřesení nevyhovuje. Návrat na šestku vyřešte jiným postupem.
Tip pro učitele
Nechte děti před spuštěním programu předpovědět, co se stane při konkrétní posloupnosti stisků. Například: po startu dvakrát A, jednou B a potom zatřesení. Správný závěr je losování od 1 do 5; přesný výsledek předem určit nelze.
Na konci požádejte každou dvojici, aby vysvětlila rozdíl mezi nastavením a hodem, ukázala test spodní hranice a popsala jednu úpravu podle zkušenosti spoluhráčů. Z toho poznáte porozumění lépe než z pouhého porovnání poskládaných bloků s předlohou.
Až bude hotovo, vezměte micro:bit ke stolu a zahrajte si. První vlastní hra nemusí mít dokonalá pravidla. Další kolo vám rychle ukáže, co stojí za vylepšení. Příjemné tvoření a bastlení ZDAR!
Odkazy pro další tvoření
- Otevřít editor MakeCode pro micro:bit
- Bastlírna HWKITCHEN — pracovní listy pro rychlý start s microbitem
- MakeCode — losování celého čísla randint
- MakeCode — událost zatřesení
- MakeCode — zobrazování čísel
- MakeCode — přenos programu do microbitu
- Micro:bit Educational Foundation — pohybové čidlo a další senzory
- MakeCode fórum — řazení stisků během čekání v obsluze tlačítka
- MakeCode — přehrání tónu
- MakeCode — přehrávání zvukových efektů a režim UntilDone
- Nastavitelná hrací kostka s microbitem - 19.10.2026
- 20+ nápadů na mise pro Cutebota: inspirace ze soutěže HWKITCHEN - 3.6.2026
- Pracovní listy pro rychlý start s microbit - 15.4.2026
