Lösung Werwolf

Aus microbit - Das Schulbuch
Version vom 16. Januar 2022, 16:26 Uhr von Leonie.dreher (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== 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 besch…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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)
})


Zurück zur Aufgabe