Obsah:
- Krok 1: Než začnete…
- Krok 2: Pravidla hry Hádej
- Krok 3: Program Blocks: Proměnné
- Krok 4: Funkce
- Krok 5: Spuštění programu a Shake Events & Event Handlers
- Krok 6: Zpráva při spuštění a funkce výzvy
- Krok 7: Událost Button a Click - reagujte na výzvu BITs
- Krok 8: Událost kliknutí na tlačítko B - Odeslání reakce na výzvu BITs
- Krok 9: Výhra/ztráta a zbývající funkce
- Krok 10: Simulátor a kód
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Po přečtení pozitivních recenzí o nich v několika online článcích jsem zvedl pár BBC Microbits.
Ve snaze seznámit se s BIT jsem si pár hodin pohrával s online editorem Microsoft Blocks a vymyslel jednoduchou hádací hru.
V tomto IBLE budeme hovořit o pravidlech hry a procházet funkce sestavené v různých blocích kódu v editoru bloků.
Konečně může vzrušené publikum přejít na online simulátor a vyzkoušet tuto jednoduchou hru.
Začněme.
Krok 1: Než začnete…
Hardware
S deskou BBC Microbit se snadno seznámíte. K tomuto IBLE budete potřebovat jen vědět, že je to malá deska se 2 tlačítky, řadou malých LED diod a zásuvkou micro-USB, která slouží jako napájecí zdroj a prostředek k načtení programu na desku.
Řadu malých LED diod lze naprogramovat tak, aby se rozsvítila v různých vzorech.
Poznámka:
Pro tento IBLE nepotřebujete fyzickou desku! Stránka BBC Microbit má online simulátor k testování kódu, který vyvíjíte online.
Software
Tento IBLE nezachází do podrobností o tom, jak začít s BBC Microbit a/nebo editorem online bloků.
Doporučujeme divákům prozkoumat tento zdroj BBC Micorbit, než přistoupíme k dalším krokům.
BBC Microbit byl navržen tak, aby učil programování pomocí velmi uživatelsky přívětivého přístupu, a proto je znalost jiného programovacího jazyka příjemná, ale není nutná, zejména pokud se budete učit programovat pomocí editoru bloků Microsoft.
Přesto jsem se ještě nesetkal s produktem, se kterým je tak snadné začít, než s BBC Microbit, vzhledem k tomu, že vlastním a hraji s několika dalšími programovacími platformami pro mikrořadiče.
Krok 2: Pravidla hry Hádej
Pravidla hry jsou následující:
- Při zapnutí BIT přemýšlí o čísle a vyzve lidského hráče, aby uhodl, jaké číslo je, vytištěním zprávy na jeho LED panelu a čeká na odpověď
- Hráč provede hádání a stiskne levé tlačítko (A) tolikrát, kolik odpovídá - Příklad: Pokud hráč uhodl 5, pak je tlačítko stisknuto 5krát
- Aby hráč odeslal odpověď na BIT, jednou stiskne pravé tlačítko (B)!
- Pokud je odhad hráče správný, pak hráč získá bod, pokud ne, BIT získá bod
- Pokud jeden hráč uhádl číslo mimo rozsah, druhý hráč získá bod - BIT zobrazí na svém LED displeji velké X a pokračuje v hádání nového čísla a opakování výzvy; Příklad: Pokud vás BIT vyzval k uhádnutí čísla mezi 1 a 5 a vy jste uhodli 6 nebo pokud jste uhodli NULU (pouhým stisknutím tlačítka B před stisknutím tlačítka A), pak je toto kolo zneplatněno
- Výzva-odpověď pokračuje, dokud jeden z hráčů nezíská maximální povolené body
Zahájení nové hry:
Chcete -li kdykoli začít novou hru, jednoduše zatraste BITem! Nebo jednoduše odpojte a znovu připojte napájení.
Krok 3: Program Blocks: Proměnné
Program používá několik proměnných pojmenovaných tak, aby odpovídaly jejich níže uvedeným funkcím. Tyto proměnné lze vytvořit kliknutím na kartu Programování proměnných v editoru bloků
BIT_SCORE - Udržuje přehled o bodech získaných BIT
bitGuessed - Tato proměnná obsahuje náhodnou hodnotu uhodnutou BIT
KONTROLA - pokud je nastavena na hodnotu True, BIT kontroluje, zda se odhad hráče shoduje s odhadem BITů
GAME_RANGE - Toto číslo omezuje, jak vysoko může BIT nebo hráč uhodnout
Příklad: Pokud je nastaveno na 6, může každý z hráčů hádat od 1 do 6
MSG - Řetězec, který se mění tak, aby zobrazoval různé zprávy na základě kontextu hry
PLAYER_SCORE - sleduje body získané hráčem
playerGuess - V této proměnné je zaznamenáno číslo uhádnuté hráčem
POZNÁMKA
Úplně první proměnná pojmenovaná položka je obecná a výchozí proměnná a lze ji ignorovat
Krok 4: Funkce
V rámci procesu učení a pro lepší organizaci byl kód organizován do řady funkcí, které bylo možné vyvolat nebo vyvolat v hlavním programu. Stejně jako proměnné lze funkce vytvářet a přistupovat k nim kliknutím na kartu Upřesnit> Programování funkcí.
Zde je stručný popis funkcí:
nounceWinner - Tato funkce vytiskne výherní zprávu adresovanou vítěznému hráči
doChallenge - Funkce, kterou BIT volá k uhádnutí čísla a představuje pro hráče výzvu
showBadGuess - Zobrazí zprávu s velkým X na panelu LED, pokud některý z hráčů hádal mimo povolený rozsah
showLose - je vyvoláno, pokud BIT vyhraje kolo výzvy nad hráčem
showMessage - představuje zprávu, která má hráče vyzvat k uhádnutí čísla v nastaveném rozsahu
showWin - je vyvolána, když hráč vyhraje kolo hádání nad BITEM
Krok 5: Spuštění programu a Shake Events & Event Handlers
„Při spuštění“a „Při otřesech“jsou obslužné rutiny událostí, které jsou volány vždy, když dojde k událostem „Start“a „Shake“. Jak je patrné z kódu Blocks, co se stane, když jsou volány tyto dvě obsluhy událostí, jsou téměř stejné jako v:
- Funkce showMessage () je volána k zobrazení zprávy při zahájení hry
- Po zobrazení zprávy je krátká pauza 650 milisekund
- Volá se funkce doChallenge (), ve které BIT uhádne číslo a čeká, až lidský hráč předloží odhad
Oběma funkcím se budeme věnovat v dalším kroku.
To znamená, že mezi obslužnými rutinami událostí „při spuštění“a „při otřesu“existují zásadní rozdíly:
- Obslužná rutina události „při spuštění“se spustí při každém spuštění BIT - jako při odpojování a opětovném připojování napájení k BIT
- Některé věci, které se musí stát pouze jednou při spuštění programu, jsou definovány v „při spuštění“a nikde jinde v celém programu
- Jedna taková věc je inicializace proměnné GAME_RANGE - v tomto případě je inicializována na 6, což znamená, že hráči mohou uhádnout číslo mezi 1 a 6
- Protože „na startu“je základní BIT funkce, není divu, že je přístupná z karty Základní programování v editoru bloků
- Na druhé straně „on shake“je obsluha událostí, která se volá vždy, když uživatel poskytne vstup do BIT ve formě rychlého zatřesení
- Obslužnou rutinu události „on shake“lze proto nalézt na kartě Programování vstupu v editoru bloků
Krok 6: Zpráva při spuštění a funkce výzvy
Funkce showMessage () Startup Message je jednoduchá funkce, která vymaže paletu LED BIT pomocí příkazu jasné obrazovky a zobrazí rolovací zprávu, která hráče vyzve k uhádnutí čísla.
Jak je patrné z funkčního bloku showMessage, několik pevných částí řetězce je připojeno k proměnné GAME_RANGE, aby se zobrazila jednoduchá zpráva, která říká:
Hádejte 0 - 6!
Funkce doChallenge () je volána na začátku každého kola výzev, a proto z funkčního bloku doChallenge dělá následující:
- Inicializuje proměnnou playerGuess na nulu, než přijme nový vstup od lidského hráče
- Inicializuje proměnnou CHECK na false - to znamená, že kolo začíná a není na čase porovnat čísla uhádnutá oběma hráči
- Dále, a co je nejdůležitější, BIT vybere náhodné číslo v rozsahu definovaném GAME_RANGE a zaznamená jej do proměnné bitGuessed
- Nakonec se LED paleta rozsvítí symbolem otazníku, který vyzve lidského hráče k zadání v reakci na výzvu BITů!
Poznámka
Pokud se změní hodnota proměnné GAME_RANGE, jak bylo popsáno v předchozím kroku, vaše hra může vypadat a působit trochu jinak.
Funkce join je řetězcová funkce a je přístupná z karty Programování textu v editoru bloků
Krok 7: Událost Button a Click - reagujte na výzvu BITs
Jakmile se na obrazovce BITs LED objeví velký otazník, v reakci na výzvu lidského hráče jednoduše proveďte následující:
- Hádejte, jaké číslo by BIT mohl myslet mezi 0 a 6
- Stiskněte tlačítko A tolikrát, kolik je vaše odpověď - Příklad, pokud je vaše odpověď 3, pak stiskněte tlačítko A 3x
Je zřejmé, že stisknutí tlačítka je uživatelským vstupem, a proto je obslužná rutina události „on button“přístupná na kartě Programování vstupu editoru bloků. Pokaždé, když uživatel stiskne tlačítko A, tato obsluha událostí provede následující:
- Zvyšte hodnotu proměnné playerGuess o 1, pokud je v limitu GAME_RANGE (v tomto případě 6)
- Pokud hráč odešle 7 nebo vyšší, odhad se zneplatní a playerGuess se resetuje zpět na nulu, což v podstatě zruší odhad hráče
Další akcí je odeslání odpovědi na výzvu, kterou projdeme v dalším kroku.
Krok 8: Událost kliknutí na tlačítko B - Odeslání reakce na výzvu BITs
Lidský hráč odešle odpověď na BIT jedním stisknutím tlačítka B. V obsluze události tlačítka B „na kliknutí“proběhne řada kroků, jakmile BIT obdrží odpověď hráčů, jak je naznačeno značkami kódu na obrázku:
- Příznak CHECK je nastaven na True - signál pro BIT pro porovnání jeho odhadu s odhadem hráčů
- Bodování pokračuje, pouze pokud oba hráči uhádli čísla větší než nula a v rámci limitu GAME_RANGE (6), a pokud ne, zavolá se funkce showBadGuess () - hráč s dobrým odhadem získá bod a hráč se špatným odhadem jeden ztratí!
- Pokud se hráči shodují s BIT, nazývá se funkce showWin () - toto kolo vyhrává hráč!
- Pokud ne, je volána funkce showLose () - BIT vyhrává toto kolo!
- Na konci každého kola se provádí kontrola pomocí funkcenounceWinner (), aby se zjistilo, zda jeden ze dvou hráčů vyhrál 3 body - pokud ano, hra končí a je vyhlášen konečný vítěz a všechna skóre a zprávy jsou resetovat
- BIT restartuje hru vydáním výzvy voláním funkce doChallenge () a čeká, až hráč zareaguje a postup se opakuje
O nových funkcích budeme diskutovat v dalších krocích.
Počkejte! Jak uhodneš NULU?
- Pokud se podíváte na funkci random () Math, můžete vidět, že její počáteční hodnota je nastavena na nulu a nelze ji změnit.
- BIT tedy může v důsledku tohoto omezení uhodnout nulu a vyzvat hráče
- Podobně může lidský hráč odeslat nulový odhad pouhým kliknutím na tlačítko B, aniž by nejprve klikl na tlačítko A!
- Pokud je to povoleno, pak lidský hráč nemusí vynakládat žádné úsilí ke hře a to nedává smysl!
- Proto bylo toto omezení kompenzováno bulletem č. 2. diskutováno výše
Krok 9: Výhra/ztráta a zbývající funkce
Všechny tyto funkce jsou nazývány obslužnou rutinou události „B při kliknutí“tlačítka B, jak je vidět v předchozím kroku.
Tyto funkce jsou docela jednoduché a do této doby byste se měli seznámit s intuitivní a narativní povahou kódu vytvořeného kombinací výstižně pojmenovaných proměnných a vizuálních atributů editoru bloků.
- Funkce showWin () zobrazuje zprávu, která naznačuje, že hráč toto kolo výzvy vyhrál, a zvyšuje proměnnou PLAYER_SCORE o 1
- Podobně funkce showLose () zobrazuje, že hráč udělal špatný odhad, a udělí bod BITu zvýšením proměnné BIT_SCORE o 1
- Funkce showBadGuess () zobrazuje na obrazovce velké X, což naznačuje, že jeden z hráčů udělal špatný odhad (buď 0 nebo větší než 6) - špatný hráč v tomto případě ztrácí bod a druhý získává bod!
A konečně, funkcenounceWinner () plní úkol oznámit, kdo je hlavním vítězem, po 3 kolech výzvy/reakce, po nichž následuje:
- Resetování proměnných skóre PLAYER_SCORE a BIT_SCORE
- Krátké pozastavení a spuštění nové hry voláním spouštěcí funkce showMessage () popsané v předchozím kroku (6) tohoto IBLE
Nakonec k simulátoru a kódu!
Krok 10: Simulátor a kód
Kód běží v online simulátoru, který se nachází zde
- Simulátor se nachází v levé dolní části stránky
- Alternativně lze tlačítko Stáhnout použít ke stažení kódu v případě, že máte po ruce BBC Microbit
- Jak již bylo zmíněno na začátku IBLE, k vytváření kódu v editoru bloků ani k simulaci a testování kódu nepotřebujete BBC Microbit, i když to nefunguje u zvědavých jedinců, jako jsem já!
Poznámka k tlačítku Upravit
- Pokud jste si všimli, kód je ve veřejné doméně a existuje způsob, jak jej upravit pomocí tlačítka Upravit vpravo nahoře
- Chtěl bych však upřímně požádat, abyste vytvořili kopii tohoto kódu a změnili jej tak, aby vyhovoval vašim potřebám, aby byla zachována původní verze v zájmu tohoto IBLE
Dík! A šťastné kódování !!!:-)