Reaktionsspil
INTRODUKTION
Du vil lave et 2-personer spil, hvor spillerne tester deres reaktionsevne. Spillet fungerer ved, at det viser et billede efter en tilfældig mængde tid, og den første til at trykke deres knap vinder.
Klubleder notater
Introduktion:
I dette projekt vil de unge mennesker lave et reaktionsspil. Et billede vil blive vist på micro:bitten efter en tilfældig mængde tid, og den første person til at trykke deres knap vinder.
De unge mennesker vil gøre brug af alle kodningskoncepterne brugt i tidligere projekter, såvel som at bruge Boolean operatorer til at vente, indtil en knap er blevet trykket.
Ressourcer
Til dette projekt bør MakeCode (PXT) microbit redigeringsprogrammet bruges.
Du kan finde en færdig version af dette projekt ved makecode.microbit.org/#pub:50800-81674-84873-32898, og den kompilerede .hex fil kan downloades ved at klikke på ‘Download Project Materials’ linket for dette projekt, som indeholder:
- microbit-Reaction.hex
Der er også en version af projektet med “Behold score” udfordringen færdiggjort. Dette kan findes ved makecode.microbit.org/#pub:23812-11544-45113-45147, og den kompilerede .hex fil kan downloades ved at klikke på ‘Download Project Materials’ linket for dette projekt, som indeholder:
- microbit-Reaction-Score.hex
Læringsmål
- Boolean operatorer:
- AND;
- NOT.
Dette projekt bruger elementer fra den følgende sektion af Raspberry Pi Digital Making Curriculum:
Udfordringer
- “Vælg dit eget billede” – skifte billedet, som vises på micro:bitten.
- “Vælg din egen forsinkelse” – ændre parametrene til
randomfunktionen. - “Behold score” – bruge variabler til at holde styr på spillernes point.
Vent på det!
Lad os starte med at vise et billede efter en tilfældig mængde tid.
Gå til rpf.io/microbit-new for at starte et nyt projekt i MakeCode (PXT) redigeringsprogrammet. Kald dit nye projekt ‘Reaction’.
Spillet bør vente en tilfældig mængde tid, før det viser et billede.
træk en pause blok ind i forever blokken, og ændre pause tiden til 1000 ms:

- Tilføj endnu en
pauseblok, og træk derefter enpick randomblok hen tilpauseblokken og sæt dets værdi til 4000:

Husk at 1000 ms er 1 sekund, så der vil være en pause på mindst et sekund, og op til a maksimum af 5 sekunder (1000 + 4000 ms).
Hvis du har lyst, kan du ændre ‘1000’ og ‘4000’ tallene for at ændre længden af den korteste og den længste pause.
- Dit spil bør vise et billede efter at have ventet, så spillerne ved, hvornår de skal trykke deres knapper.

Tryk ‘run’ for at teste dit projekt. Du bør se dit billede dukke op efter en tilfældig forsinkelse.
Tilføj kode til sidst i
forever-løkken for at vise dit billede i 1 sekund, og ryd derefter displayet.

- Test dit projekt. Du bør se dit billede blive vist tilfældigt og derefter forsvinde.
Udfordring: Vælg dit eget billede
Kan du ændre billedet, der bliver vist?
Udfordring: vælg din egen forsinkelse
Ændre tallene i din random blok. Du kan få dit spil til at køre hurtigere for at gøre det sværere, eller få det til at køre langsommere for at tilføje spænding!
Vent på en vinder
Lad os tilføje kode til at vente, indtil en knap er trykket.
- Efter visning af et billede, er du nødt til at vente, indtil nogen trykker deres knap.
En anden måde at sige dette er, at du er nødt til at vente, så længe at knap A og knap B ikke er blevet trykket (henholdsvis and og not på engelsk).
For at gøre dette, skal du tilføje en while løkke fra ‘Control’ afsnittet. While løkken bør tilføjes lige efter draw blokken.

- Træk en
andblok fra ‘Logic’ til dinwhileblok:

- Træk en
notfra ‘Logic’ ind i den venstre side afandblokken:

- Træk en
button A is pressed(knap A er trykket på dansk) blok fra ‘Input’ til efternotblokken:

- Gentag de 2 øverste trin for at tilføje
not button B is pressedtil denhøjreside af dinwhileløkke.

- Du kan derefter tilføje en meget kort (20ms) forsinkelse, så din
whileløkke venter, så længe at en knap ikke er blevet trykket.

- Test dit projekt. Dit spil bør nu vise et billede, og derefter vente så længe at knapperne A og B ikke er blevet trykket.
Hvem er hurtigst?
Lad os finde ud af, hvem der trykkede deres knap først.
- Hvis knap A var trykket, vil vi gerne pege på spiller A. For at gøre dette, skal du tilføje en
ifblok efter dinwhileløkke, og erstattetestmedbutton A is pressed.

- Du kan derefter bruge
show ledsblokken til at vise en pil, som peger mod spiller A.

- Du bør også gøre det samme for knap B.

Udfordring: Behold score
Kan du bruge to variabler kaldt playerA og playerB til at holde styr på hver spillers score?
Du er nødt til at sætte begge scoringer til 0 i starten af spillet ved at placere kode inde i ‘on start’ blokken.

Og hver runde tilføj 1 til den spiller, som vandt.
Du er også nødt til at tænke over, hvordan scoren skal vises.