Skip to content

as27/maumau

Repository files navigation

maumau

Simples MauMau Spiel für zwei Spieler.

screenshot of v0.8

Dieses Spiel wurde im Zuge des Social Distancings entwickelt, sodass Kinder auch mit ihren Großeltern maumau spielen können. Das Spiel läuft auf einem Server, der über Websockets sich mit den Clients verbindet.

Definitionen

Stapel

Der Stapel das sind die gemischten Karten. Vom Stapel ziehen die Spieler immer die oberste Karte.

Haufen

Auf den Haufen werden die unterschiedlichen Karten abgelegt. Dabei dürfen nur bestimmte Karten auf den Stapel gelegt werden.

Events

Für die Umsetzung werden verschiedene Events definiert.

  • newGame: Neues Spiel
  • Erste Karte Aufdecken
  • newPlayer(name): Spieler hinzufügen
  • pushCardToStack: Karte auf den Stapel legen (wird nach dem Mischen der Karten verwendet)
  • setActivePlayer: Spieler am Zug
  • playerReady: Spieler ist fertig mit dem Zug
  • popCardFromStack: Spieler nimmt oberste Karte vom Stapel
  • pushCardToHeap: Spieler legt Karte auf den Haufen
  • gameOver: Spieler hat gewonnen

GUI

Umsetzung erfolg über HTML

  • HTML Template Struktur
  • vue.js Rendering via JSON Input
  • Anbindung an Wesocket
  • Abfangen von nicht gültigen Zügen
  • Anmeldebildschirm
  • Undo und Redo
  • Neues Spiel

Definition der einzelnen Phasen für den Client

  • Status: Warte Anmeldung Partner
  • Status: Warte auf Zug
  • Status: Spiele Karte
  • Status: Nimm eine Karte
  • Status: Wähle Farbe

Server

  • Game State für Spieler
  • Game Start
  • Validierung der Züge
  • Undo und Redo Handler
  • Neues Spiel Handler

embed-Erweiterung

Im Zuge von Go 1.16 wurden alle lokalen HTML-Files nun mittels embed-Paket in das Binary aufgenommen.