Lösung Werwolf
Rollen
Entscheidet euch als erstes dafür welche Rollen aus dem Werwolf Spiel integrieren wollt. Wir haben uns für den Anfang auf folgende Rollen beschränkt: Dorfbewohner, Werwolf und Hexe. Für jede Rolle haben wir je eine Abkürzung (ein Buchstabe) und ein Symbol gewählt, um dieses kurz anzeigen zu können:
- Werwolf
Abkürzung: W
Symbol:
basic.showLeds(` # . . . # . # . # . . . . . . # # # # # # . # . # `)
- Hexe
Abkürzung: H
Symbol:
basic.showLeds(` # # # # # . # . # . # . . . # # # # # # . # # # . `)
- Dorfbewohner
Abkürzung: D
Symbol:
basic.showLeds(` . . . . . . # . # . . . . . . # . . . # . # # # . `)
Jeder micro:bit übernimmt eine der Karten im Spiel, auf denen die jeweilige Rolle der Spieler:innen steht. Um die Rollen pro micro:bit zuweisen zu können, müssen diese auf dem micro:bit ausgewählt werden können. Hierzu brauchen wir folgendes:
- Ein Menü, um aus den unterschiedlichen Rollen auswählen zu können
- Eine Möglichkeit, eine dieser Rollen auszuwählen
- Die Option, diese Rolle für kurze Zeit auf dem BBC micro:bit sichtbar zu machen (Das ist vor allem wichtig, wenn ihr “die Seherin” als Rolle hinzufügen wollt).
- Die Option, Charaktere aus dem Spiel zu nehmen, wenn sie z.B. vom Werwolf gefressen oder aus dem Dorf verbannt werden..
- Die Option, “verstorbene” Charaktere zurückzuholen (wichtig, wenn die “Hexe” eine der Rollen ist).
Setup
Beim Start soll folgendes ausgeführt werden:
- Es wird eine Variable erstellt, in dem die Rollen abgelegt werden (z.B. “Menü” oder “Rollen”)
- Setzt diese Variable auf ein Array. Ein Array oder Liste ist eine Reihe von Variablen mit je einem bestimmten Wert. Jedes Item auf dieser Liste erhält je nach Position eine Zahl. Die erste Position hat die Zahl 0.
Nutzt hierzu folgenden Block:
basic.forever(function () { text_list = ["a", "b", "c"] })
Unser Array hat folgende Items:
- Ereignis "wenn Logo berührt"
- Soundeffekt wird gespielt
- Das Symbol blinkt 5 mal, damit man weiß, welcher micro:bit gedrückt wurde
input.onLogoEvent(TouchButtonEvent.Touched, function () { soundExpression.sad.play() for (let index = 0; index < 5; index++) { basic.showLeds(` # . . . # # # . # # # . # . # # . . . # # . . . # `) basic.pause(10) basic.showLeds(` . . . . . . . . . . . . . . . . . . . . . . . . . `) basic.pause(10) }
- Ereignis: Wenn Knopf A gedrückt
- Häkchen-Symbol erscheint
input.onButtonPressed(Button.A, function () { basic.showIcon(IconNames.Yes) })
- Eine mögliche Lösung