Spisu treści:

Co to jest myślenie bitowe? Stwórz prostą grę w zgadywanie z BBC Microbit!: 10 kroków
Co to jest myślenie bitowe? Stwórz prostą grę w zgadywanie z BBC Microbit!: 10 kroków

Wideo: Co to jest myślenie bitowe? Stwórz prostą grę w zgadywanie z BBC Microbit!: 10 kroków

Wideo: Co to jest myślenie bitowe? Stwórz prostą grę w zgadywanie z BBC Microbit!: 10 kroków
Wideo: 9. Kurs C++ dla początkujących - Gra zgadywanie [Praktyka] 2024, Listopad
Anonim
Co to jest myślenie bitowe? Zrób prostą grę zgadywania z BBC Microbit!
Co to jest myślenie bitowe? Zrób prostą grę zgadywania z BBC Microbit!

Wybrałem kilka BBC Microbits po przeczytaniu pozytywnych recenzji na ich temat w kilku artykułach online.

Próbując zapoznać się z BIT-em, przez kilka godzin bawiłem się internetowym edytorem bloków Microsoft Blocks i wymyśliłem prostą grę zgadywania.

W tym IBLE będziemy rozmawiać o zasadach gry i poruszać się po funkcjach zgromadzonych w różnych blokach kodu w Edytorze bloków.

Wreszcie podekscytowana publiczność może przejść do symulatora online i spróbować tej prostej gry.

Zacznijmy.

Krok 1: Zanim zaczniesz…

Zanim zaczniesz…
Zanim zaczniesz…
Zanim zaczniesz…
Zanim zaczniesz…

Sprzęt

Z płytą BBC Microbit łatwo się zapoznać. W przypadku tego IBLE wszystko, co musisz wiedzieć, to to, że jest to niewielka płytka z 2 przyciskami, szeregiem maleńkich diod LED i gniazdem micro-USB, które działa jako zasilacz i środek do załadowania programu na płytkę.

Szereg maleńkich diod LED można zaprogramować tak, aby świeciły w różnych wzorach.

Notatka:

Nie potrzebujesz fizycznej tablicy do tego IBLE! Witryna BBC Microbit ma symulator online do testowania kodu, który tworzysz online.

Oprogramowanie

Ten IBLE nie zawiera szczegółowych informacji na temat rozpoczęcia pracy z BBC Microbit i/lub Online Blocks Editor.

Zachęcamy odbiorców do zapoznania się z tym zasobem BBC Micorbit przed przejściem do następnych kroków.

BBC Microbit został zaprojektowany, aby uczyć programowania przy użyciu bardzo przyjaznego dla użytkownika podejścia, dlatego znajomość innego języka programowania jest przyjemna, ale nie jest wymagana, zwłaszcza jeśli zamierzasz korzystać z Microsoft Blocks Editor do nauki programowania.

Niemniej jednak, nie spotkałem się jeszcze z produktem, który jest tak łatwy do rozpoczęcia niż BBC Microbit, biorąc pod uwagę, że posiadam kilka innych platform programowania mikrokontrolerów i korzystam z nich.

Krok 2: Zasady gry w zgadywanie

Zasady gry w zgadywanie
Zasady gry w zgadywanie

Zasady gry są następujące:

  1. Po włączeniu BIT myśli o liczbie i wzywa gracza do odgadnięcia, jaka jest ta liczba, drukując komunikat na panelu LED i czeka na odpowiedź
  2. Gracz odgaduje i naciska lewy przycisk (A) tyle razy, ile daje odpowiedź - Przykład, jeśli gracz odgadł 5, przycisk jest wciskany 5 razy
  3. Aby przesłać odpowiedź do BIT-a, gracz jednokrotnie naciska Prawy Przycisk (B)!
  4. Jeśli zgadywanka jest słuszna, gracz zdobywa punkt, jeśli nie, BIT otrzymuje punkt
  5. Jeśli jeden gracz odgadł liczbę spoza zakresu, drugi gracz zdobywa punkt – BIT wyświetla duży X na swoim wyświetlaczu LED i odgaduje nową liczbę i powtarza wyzwanie; Przykład: Jeśli BIT wezwał cię do odgadnięcia liczby od 1 do 5, a ty odgadłeś 6, lub jeśli odgadłeś ZERO (po prostu naciskając przycisk B przed naciśnięciem przycisku A), ta runda jest unieważniana
  6. Odpowiedź na wyzwanie trwa, dopóki jeden z graczy nie zdobędzie maksymalnej dopuszczalnej liczby punktów

Rozpoczęcie nowej gry:

Aby rozpocząć nową grę w dowolnym momencie, po prostu potrząśnij BIT! Lub po prostu odłącz i ponownie podłącz zasilanie.

Krok 3: Program blokowy: Zmienne

Program Bloki: Zmienne
Program Bloki: Zmienne

Program wykorzystuje kilka zmiennych nazwanych tak, aby pasowały do ich funkcji wymienionych poniżej. Zmienne te można utworzyć, klikając kartę Programowanie zmiennych w Edytorze bloków

BIT_SCORE - śledzi punkty zdobyte przez BIT

bitGuessed - Ta zmienna przechowuje losową wartość odgadniętą przez BIT

CHECK - po ustawieniu na True, BIT sprawdza, czy zgadywanie graczy jest równe domysłom BITów

GAME_RANGE - Ta liczba ogranicza, jak wysoko może odgadnąć BIT lub gracz

Przykład: Jeśli jest ustawiony na 6, każdy z graczy może odgadnąć od 1 do 6

MSG - ciąg znaków, który jest zmieniany, aby wyświetlać różne komunikaty w zależności od kontekstu gry

PLAYER_SCORE - śledzi punkty zdobyte przez gracza

playerGuess - liczba odgadnięta przez gracza jest zapisywana w tej zmiennej

NOTATKA

Pierwsza zmienna o nazwie item jest zmienną ogólną i domyślną i można ją zignorować

Krok 4: Funkcje

Funkcje
Funkcje

W ramach procesu uczenia się i dla lepszej organizacji kod został zorganizowany w szereg funkcji, które można było wywoływać lub wywoływać w głównym programie. Podobnie jak zmienne, funkcje można tworzyć i uzyskiwać do nich dostęp, klikając kartę Zaawansowane > Programowanie funkcji.

Poniżej znajduje się krótki opis funkcji:

announceWinner - Ta funkcja drukuje wiadomość wygrywającą zaadresowaną do zwycięskiego gracza

doChallenge - Funkcja, którą BIT wywołuje, aby odgadnąć liczbę i stanowić wyzwanie dla gracza

showBadGuess - Wyświetla wiadomość z dużym X na panelu LED, jeśli któryś z graczy zgadł poza dozwolonym zakresem

showLose - jest wywoływane, jeśli BIT wygra rundę wyzwania nad graczem

showMessage - wyświetla komunikat wzywający gracza do odgadnięcia liczby z określonego zakresu

showWin - jest wywoływana, gdy gracz wygrywa rundę zgadywania nad BITem

Krok 5: Uruchomienie programu oraz zdarzenia wstrząsów i obsługa zdarzeń

Uruchomienie programu oraz Shake Events & Event Handlers
Uruchomienie programu oraz Shake Events & Event Handlers

"na starcie" i "na potrząśnięciu" to programy obsługi zdarzeń, które są wywoływane odpowiednio, gdy wystąpią zdarzenia "start" i "wstrząsanie". Jak widać z kodu Blocks, co się dzieje, gdy te dwa programy obsługi zdarzeń są wywoływane, są prawie takie same jak w:

  • Funkcja showMessage() jest wywoływana, aby wyświetlić komunikat po rozpoczęciu gry
  • Po wyświetleniu komunikatu następuje krótka przerwa trwająca 650 milisekund
  • Wywoływana jest funkcja doChallenge(), w której BIT odgaduje liczbę i czeka, aż ludzki gracz prześle odpowiedź

W następnym kroku omówimy te dwie funkcje.

To powiedziawszy, istnieją fundamentalne różnice między obsługą zdarzeń „na starcie” i „przy wstrząsaniu”:

  1. Obsługa zdarzeń „on start” jest uruchamiana za każdym razem, gdy BIT jest uruchamiany - jak w przypadku odłączania i ponownego podłączania zasilania do BIT
  2. Pewne rzeczy, które muszą się zdarzyć tylko raz podczas uruchamiania programu, są zdefiniowane w "na starcie" i nigdzie indziej w całym programie
  3. Jedną z takich rzeczy jest inicjalizacja zmiennej GAME_RANGE - w tym przypadku jest ona inicjowana na 6, co oznacza, że gracze mogą odgadnąć liczbę od 1 do 6
  4. Ponieważ funkcja „na starcie” jest podstawową funkcją BIT-a, nic dziwnego, że jest dostępna z zakładki Programowanie podstawowe w Edytorze bloków
  5. Z drugiej strony "on shake" to program obsługi zdarzeń, który jest wywoływany za każdym razem, gdy użytkownik wprowadza dane wejściowe do BIT w postaci szybkiego potrząśnięcia
  6. W związku z tym procedurę obsługi zdarzeń „wstrząśnięcia” można znaleźć w zakładce Programowanie wejściowe w Edytorze bloków

Krok 6: Komunikat startowy i funkcje wyzwania

Komunikat startowy i funkcje wyzwania
Komunikat startowy i funkcje wyzwania
Komunikat startowy i funkcje wyzwania
Komunikat startowy i funkcje wyzwania
Komunikat startowy i funkcje wyzwania
Komunikat startowy i funkcje wyzwania

Funkcja komunikatu startowego showMessage() jest prostą funkcją, która czyści paletę LED BITów za pomocą polecenia czyszczenia ekranu i wyświetla przewijany komunikat, wzywający gracza do odgadnięcia liczby.

Jak widać z bloku funkcyjnego showMessage, do zmiennej GAME_RANGE dołącza się kilka stałych fragmentów łańcucha, aby wyświetlić prosty komunikat o treści:

Zgadnij 0 - 6!

Funkcja doChallenge() jest wywoływana na początku każdej rundy wyzwania i dlatego wykonuje następujące czynności, jak widać z bloku funkcyjnego doChallenge:

  1. Inicjuje zmienną playerGuess na zero przed zaakceptowaniem nowych danych wejściowych od ludzkiego gracza
  2. Inicjuje zmienną CHECK na wartość false - co oznacza, że runda ma się rozpocząć i nie nadszedł jeszcze czas na porównanie liczb odgadniętych przez obu graczy
  3. Następnie, co najważniejsze, BIT wybiera losową liczbę z zakresu określonego przez GAME_RANGE i zapisuje ją w zmiennej bitGuessed
  4. Wreszcie paleta LED zostaje podświetlona symbolem znaku zapytania, który zachęca gracza do wprowadzenia danych w odpowiedzi na wyzwanie BITów!

Notatka

Jeśli wartość zmiennej GAME_RANGE zostanie zmieniona zgodnie z opisem w poprzednim kroku, twoja gra może wyglądać i działać nieco inaczej.

Funkcja łączenia jest funkcją ciągu i może być dostępna z zakładki Programowanie tekstu w Edytorze bloków

Krok 7: Wydarzenie Button a Click - Odpowiedz na wyzwanie BITs

Wydarzenie Button a Click - odpowiedz na wyzwanie BITów!
Wydarzenie Button a Click - odpowiedz na wyzwanie BITów!

Gdy na ekranie LED BITów pojawi się duży znak zapytania, odpowiedzią na wyzwanie dla ludzkiego gracza jest po prostu wykonanie następujących czynności:

  1. Zgadnij, jaką liczbę może myśleć BIT między 0 a 6
  2. Naciśnij przycisk A tyle razy, ile wynosi twoja odpowiedź - Przykład, jeśli twoja odpowiedź to 3, a następnie naciśnij przycisk A 3 razy

Oczywiście naciśnięcie przycisku jest wejściem użytkownika, a zatem procedura obsługi zdarzenia „włącz przycisk” jest dostępna za pośrednictwem zakładki Programowanie wejścia w edytorze bloków. Za każdym razem, gdy użytkownik naciśnie przycisk A, ten program obsługi zdarzeń wykonuje następujące czynności:

  • Zwiększ wartość zmiennej playerGuess o 1, o ile mieści się w limicie GAME_RANGE (w tym przypadku 6)
  • Jeśli gracz zgłosi 7 lub więcej, odgadnięcie jest unieważnione, a gracz Guess jest resetowany z powrotem do zera, zasadniczo unieważniając przypuszczenie gracza

Kolejną czynnością jest przesłanie odpowiedzi na wyzwanie, przez które przejdziemy w kolejnym kroku.

Krok 8: Wydarzenie związane z kliknięciem przycisku B - prześlij odpowiedź na wyzwanie BITs

Wydarzenie dotyczące kliknięcia przycisku B - prześlij odpowiedź na wyzwanie BITs!
Wydarzenie dotyczące kliknięcia przycisku B - prześlij odpowiedź na wyzwanie BITs!
Wydarzenie dotyczące kliknięcia przycisku B - prześlij odpowiedź na wyzwanie BITs!
Wydarzenie dotyczące kliknięcia przycisku B - prześlij odpowiedź na wyzwanie BITs!

Człowiek przesyła odpowiedź do BIT-a, naciskając raz przycisk B. W module obsługi zdarzenia „on click” przycisku B ma miejsce wiele kroków, gdy tylko BIT otrzyma odpowiedź graczy, zgodnie ze znacznikami kodu na obrazku:

  1. Flaga CHECK jest ustawiona na True - sygnał dla BIT-a do porównania swoich przypuszczeń z przypuszczeniami graczy
  2. Punktacja jest kontynuowana tylko wtedy, gdy obaj gracze odgadli liczby większe niż zero i mieszczące się w limicie GAME_RANGE (z 6), a jeśli nie, wywoływana jest funkcja showBadGuess() - gracz dobrze zgadujący wygrywa punkt, a gracz źle odgadujący traci jeden!
  3. Jeśli odgadnięcia graczy zgadzają się z tymi z bitów, wywoływana jest funkcja showWin() - gracz wygrywa tę rundę!
  4. Jeśli nie, wywoływana jest funkcja showLose() - BIT wygrywa tę rundę!
  5. Na koniec każdej rundy sprawdzana jest funkcja announceWinner(), aby sprawdzić, czy jeden z dwóch graczy wygrał, zdobywając 3 punkty - jeśli tak, gra się kończy i ogłaszany jest ostateczny zwycięzca, a wszystkie wyniki i komunikaty są Resetowanie
  6. BIT restartuje grę, wydając wyzwanie, wywołując funkcję doChallenge() i czeka na odpowiedź gracza, a proces się powtarza

W kolejnych krokach omówimy nowe funkcje.

Czekać! Jak zgadniesz ZERO?

  • Jeśli spojrzysz na funkcję matematyczną random(), zobaczysz, że jej wartość początkowa jest ustawiona na zero i nie można jej zmienić.
  • BIT może zatem swobodnie odgadnąć zero i rzucić wyzwanie graczowi w wyniku tego ograniczenia
  • Podobnie, gracz-człowiek może zgłosić zero, po prostu klikając przycisk B bez wcześniejszego klikania przycisku A!
  • Jeśli jest to dozwolone, gracz nie musi podejmować żadnego wysiłku, aby grać, a to nie ma sensu!
  • Dlatego to ograniczenie zostało zrekompensowane przez Bullet #2. omówione powyżej

Krok 9: Wygrana/przegrana i reszta funkcji

Wygrana/przegrana i reszta funkcji
Wygrana/przegrana i reszta funkcji
Wygrana/przegrana i reszta funkcji
Wygrana/przegrana i reszta funkcji
Wygrana/przegrana i reszta funkcji
Wygrana/przegrana i reszta funkcji

Wszystkie te funkcje są wywoływane przez moduł obsługi zdarzenia „przy kliknięciu” przycisku B, jak pokazano w poprzednim kroku.

Te funkcje są dość proste i do tego czasu powinieneś zapoznać się z intuicyjną i narracyjną naturą kodu utworzonego przez połączenie trafnie nazwanych zmiennych i wizualnych atrybutów Edytora bloków.

  1. Funkcja showWin() wyświetla komunikat wskazujący, że gracz wygrał tę rundę wyzwania i zwiększa zmienną PLAYER_SCORE o 1
  2. Podobnie funkcja showLose() wyświetla gracza, który źle zgadł i przyznaje punkt BITowi poprzez zwiększenie zmiennej BIT_SCORE o 1
  3. Funkcja showBadGuess() wyświetla na ekranie duży X wskazujący, że jeden z graczy źle zgadł (o wartości 0 lub większej niż 6) - w tym przypadku zły gracz traci punkt, a drugi zdobywa punkt!

I na koniec, funkcja announceWinner() wykonuje zadanie ogłoszenia, kto jest zwycięzcą po 3 rundach wyzwania/odpowiedzi, a następnie:

  • Resetowanie zmiennych punktacji PLAYER_SCORE i BIT_SCORE
  • Krótkie wstrzymanie i rozpoczęcie nowej gry poprzez wywołanie funkcji startowej showMessage() omówionej w poprzednim kroku (6) tego IBLE

Na koniec przejdźmy do symulatora i kodu!

Krok 10: Symulator i kod

Symulator i kod
Symulator i kod

Kod działa w symulatorze online, który znajduje się tutaj

  • Symulator znajduje się w lewym dolnym rogu strony
  • Alternatywnie, przycisk Pobierz może być użyty do pobrania kodu, jeśli masz pod ręką BBC Microbit
  • Jak wspomniano na początku IBLE, nie potrzebujesz BBC Microbit, aby zbudować kod w edytorze bloków lub symulować i testować swój kod, chociaż nie działa to dla ciekawskich osób, takich jak ja!

Uwaga dotycząca przycisku edycji

  • Jeśli zauważyłeś, kod jest w domenie publicznej i można go edytować za pomocą przycisku Edytuj w prawym górnym rogu
  • Chciałbym jednak szczerze prosić o wykonanie kopii tego kodu i zmianę go zgodnie z własnymi potrzebami, aby oryginalna wersja została zachowana w interesie tego IBLE

Dziękuję! I szczęśliwego kodowania!!!:-)

Zalecana: