From af652043bb063960045de374c48f4ac0ef20cb9b Mon Sep 17 00:00:00 2001 From: YoEnte Date: Fri, 19 Sep 2025 09:20:50 +0200 Subject: [PATCH 1/7] chore: remove premaid xml alias --- hyperbook/book/spiele/25_hase-und-igel/xml.md | 1 - 1 file changed, 1 deletion(-) diff --git a/hyperbook/book/spiele/25_hase-und-igel/xml.md b/hyperbook/book/spiele/25_hase-und-igel/xml.md index 5d37e582..f421a2ba 100644 --- a/hyperbook/book/spiele/25_hase-und-igel/xml.md +++ b/hyperbook/book/spiele/25_hase-und-igel/xml.md @@ -1,6 +1,5 @@ --- name: XML-Dokumentation -permaid: xml --- # XML-Elemente des Spiels Hase und Igel From 5fcec296d285064146d169a7b43b80f13cac05b7 Mon Sep 17 00:00:00 2001 From: YoEnte Date: Fri, 19 Sep 2025 09:21:19 +0200 Subject: [PATCH 2/7] add: piranhas 26 xml docs --- hyperbook/book/spiele/26_piranhas/xml.md | 176 +++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 hyperbook/book/spiele/26_piranhas/xml.md diff --git a/hyperbook/book/spiele/26_piranhas/xml.md b/hyperbook/book/spiele/26_piranhas/xml.md new file mode 100644 index 00000000..06a8c04a --- /dev/null +++ b/hyperbook/book/spiele/26_piranhas/xml.md @@ -0,0 +1,176 @@ +--- +name: XML Dokumentation +permaid: xml +--- + +# XML-Elemente des Spiels Piranhas + +Diese Dokumentation beschreibt die spielspezifischen Elemente des [XML-Protokolls](/xml/protokoll) +für das Spiel Piranhas. + +## Spielstatus + +Die folgende XML-Struktur beschreibt den regelmäßig mitgeteilten Spielstatus. +Gesendet wird diese Nachricht immer dann, wenn sich was am Spielfeld ändert, +d.h. wenn ein Spieler einen Zug gespielt hat. + +Ein Status enthält das aktuelle Spielfeld und den zuletzt gespielten Zug. +Das Spielbrett ist ein 2-Dimensionales Grid an Feldern, +mit dem Koordinatenursprung (0 , 0) unten links in der Ecke. +Entsprechend überträgt der Server das Spielfeld aufgeteilt +in die einzelnen Reihen und beginnt dabei mit der untersten Reihe. +Die Reihen werden von links nach rechts beschrieben. +Der zuletzt im Spiel gespielte Zug `lastMove` ist wie ein gewöhnlicher +[Zug](/spiele/26_piranhas/xml#zug-senden) aufgebaut. + +```xml + + + + + + UP_RIGHT + + + + TWO_S + TWO_S + TWO_S + EMPTY + EMPTY + EMPTY + EMPTY + TWO_L + TWO_M + EMPTY + + + ONE_S + EMPTY + EMPTY + EMPTY + SQUID + EMPTY + EMPTY + ONE_M + EMPTY + EMPTY + + ... + + EMPTY + TWO_M + ... + TWO_M + EMPTY + + + + + +``` + +### Felder + +Die Felder werden wie folgt codiert: + +- leeres Feld: `EMPTY` +- Krakenfeld: `SQUID` +- Fischfeld: `TEAM_GRÖßE` + - wobei TEAM `ONE` oder `TWO` ist + - und GRÖßE `S`, `M` oder `L` ist, der Größe des Fisches + +## Spiel betreten ohne Reservierungscode + +Betritt ein beliebiges offenes Spiel: + +```xml + +``` + +Sollte kein Spiel offen sein, wird so ein neues erstellt. +Je nachdem ob `paused` in `server.properties` true oder false ist, +wird das Spiel pausiert gestartet oder nicht. + +## Spielzug + +### Aufforderung + +Wenn der eigene Client am Zug ist, folgt nach dem Spielstatus diese +Aufforderung, dass der Server einen Zug erwartet: + +```xml + + + +``` + +### Zug senden + +Ein Zug im Spiel Pirnhas besteht immer aus einer Startposition, +auf dem ein Fisch des eigenen Teams liegen muss +und einer Richtung, in welcher sich dieser Fisch bewegen soll: + +```xml + + + + LEFT + + +``` + +Die Richtung ist codiert als einer der folgenden acht Optionen: + +`UP` `UP_RIGHT` `RIGHT` `DOWN_RIGHT` `DOWN` `DOWN_LEFT` `LEFT` `UP_LEFT` + +## Spielergebnis + +Wenn das Spiel vorbei ist, erhalten die Clients das Ergebnis der Partie: + +```xml + + + + + SUM + true + + + AVERAGE + true + + + + + + + 0 + 2 + + + + + + 2 + 5 + + + + + + +``` + +Unter `scores` werden jeweils die beiden Spieler mit den erreichten Punkten aufgezählt. +Was genau die Werte in `part` werde bedeuten, wird vorher definiert. +Für Piranhas ist das zuerst die Anzahl der Siegpunkte, die im Wettkampfsystem angerechnet werden und +dann die am Ende des Spiel errreichte Schwarmgröße. + +In diesem Beispiel sieht man, dass Spieler 2 mit einer Schwarmgröße von 5 diese Runde gewonnen hat. + +Bei einem unendschieden erhalten beide Spieler jeweils einen Siegpunkt und der `winner`-Tag führt kein Team: + +```xml + +``` \ No newline at end of file From 6a598a00ca70076f7c4db72bd0759e9a8d2ec428 Mon Sep 17 00:00:00 2001 From: YoEnte <67060214+YoEnte@users.noreply.github.com> Date: Thu, 25 Sep 2025 14:50:14 +0200 Subject: [PATCH 3/7] Update hyperbook/book/spiele/26_piranhas/xml.md typo fix Co-authored-by: Janek --- hyperbook/book/spiele/26_piranhas/xml.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hyperbook/book/spiele/26_piranhas/xml.md b/hyperbook/book/spiele/26_piranhas/xml.md index 06a8c04a..5040a4f1 100644 --- a/hyperbook/book/spiele/26_piranhas/xml.md +++ b/hyperbook/book/spiele/26_piranhas/xml.md @@ -169,7 +169,7 @@ dann die am Ende des Spiel errreichte Schwarmgröße. In diesem Beispiel sieht man, dass Spieler 2 mit einer Schwarmgröße von 5 diese Runde gewonnen hat. -Bei einem unendschieden erhalten beide Spieler jeweils einen Siegpunkt und der `winner`-Tag führt kein Team: +Bei einem Unentschieden erhalten beide Spieler jeweils einen Siegpunkt und der `winner`-Tag führt kein Team: ```xml From ef52af53b324b261bb508a7226f3b829f7164992 Mon Sep 17 00:00:00 2001 From: YoEnte Date: Thu, 25 Sep 2025 14:53:46 +0200 Subject: [PATCH 4/7] fix: example for fish fields + typo --- hyperbook/book/spiele/26_piranhas/xml.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hyperbook/book/spiele/26_piranhas/xml.md b/hyperbook/book/spiele/26_piranhas/xml.md index 5040a4f1..bfb6ad92 100644 --- a/hyperbook/book/spiele/26_piranhas/xml.md +++ b/hyperbook/book/spiele/26_piranhas/xml.md @@ -74,11 +74,12 @@ Der zuletzt im Spiel gespielte Zug `lastMove` ist wie ein gewöhnlicher Die Felder werden wie folgt codiert: -- leeres Feld: `EMPTY` +- Leeres Feld: `EMPTY` - Krakenfeld: `SQUID` - Fischfeld: `TEAM_GRÖßE` - wobei TEAM `ONE` oder `TWO` ist - und GRÖßE `S`, `M` oder `L` ist, der Größe des Fisches + - d.h. zum Beispiel `ONE_S` für den kleinen Fisch des Spielers 1 ## Spiel betreten ohne Reservierungscode From 136214c17edb4c6aea44bdccd5f9ab71182b55bb Mon Sep 17 00:00:00 2001 From: YoEnte <67060214+YoEnte@users.noreply.github.com> Date: Sat, 27 Sep 2025 11:32:59 +0200 Subject: [PATCH 5/7] Update hyperbook/book/spiele/26_piranhas/xml.md sembr Co-authored-by: Janek --- hyperbook/book/spiele/26_piranhas/xml.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/hyperbook/book/spiele/26_piranhas/xml.md b/hyperbook/book/spiele/26_piranhas/xml.md index bfb6ad92..d0ea6264 100644 --- a/hyperbook/book/spiele/26_piranhas/xml.md +++ b/hyperbook/book/spiele/26_piranhas/xml.md @@ -164,9 +164,10 @@ Wenn das Spiel vorbei ist, erhalten die Clients das Ergebnis der Partie: ``` Unter `scores` werden jeweils die beiden Spieler mit den erreichten Punkten aufgezählt. -Was genau die Werte in `part` werde bedeuten, wird vorher definiert. -Für Piranhas ist das zuerst die Anzahl der Siegpunkte, die im Wettkampfsystem angerechnet werden und -dann die am Ende des Spiel errreichte Schwarmgröße. +Was genau die Werte in `part` bedeuten, steht in der `definition`. +Für Piranhas ist das die Anzahl der Siegpunkte, +die im Wettkampfsystem angerechnet werden +und die am Ende des Spiel errreichte Schwarmgröße. In diesem Beispiel sieht man, dass Spieler 2 mit einer Schwarmgröße von 5 diese Runde gewonnen hat. From 12cbbdb6c201017858ccd5ab21c051f03d2b47f3 Mon Sep 17 00:00:00 2001 From: YoEnte Date: Sat, 27 Sep 2025 11:33:36 +0200 Subject: [PATCH 6/7] fix: typo --- hyperbook/book/spiele/26_piranhas/xml.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hyperbook/book/spiele/26_piranhas/xml.md b/hyperbook/book/spiele/26_piranhas/xml.md index d0ea6264..6b47c7a9 100644 --- a/hyperbook/book/spiele/26_piranhas/xml.md +++ b/hyperbook/book/spiele/26_piranhas/xml.md @@ -167,7 +167,7 @@ Unter `scores` werden jeweils die beiden Spieler mit den erreichten Punkten aufg Was genau die Werte in `part` bedeuten, steht in der `definition`. Für Piranhas ist das die Anzahl der Siegpunkte, die im Wettkampfsystem angerechnet werden -und die am Ende des Spiel errreichte Schwarmgröße. +und die am Ende des Spiel erreichte Schwarmgröße. In diesem Beispiel sieht man, dass Spieler 2 mit einer Schwarmgröße von 5 diese Runde gewonnen hat. From 800bb8ba3f94a616c61f965cfcb4b0eb3bc7d7be Mon Sep 17 00:00:00 2001 From: Janek Date: Wed, 1 Oct 2025 22:25:28 +0200 Subject: [PATCH 7/7] Update fish field example in hyperbook/book/spiele/26_piranhas/xml.md --- hyperbook/book/spiele/26_piranhas/xml.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hyperbook/book/spiele/26_piranhas/xml.md b/hyperbook/book/spiele/26_piranhas/xml.md index 6b47c7a9..ef92c33d 100644 --- a/hyperbook/book/spiele/26_piranhas/xml.md +++ b/hyperbook/book/spiele/26_piranhas/xml.md @@ -76,10 +76,9 @@ Die Felder werden wie folgt codiert: - Leeres Feld: `EMPTY` - Krakenfeld: `SQUID` -- Fischfeld: `TEAM_GRÖßE` +- Feld mit Fisch: `TEAM_GRÖßE` (z.B. `ONE_S` für den kleinen Fisch des Spielers 1, meist Rot) - wobei TEAM `ONE` oder `TWO` ist - und GRÖßE `S`, `M` oder `L` ist, der Größe des Fisches - - d.h. zum Beispiel `ONE_S` für den kleinen Fisch des Spielers 1 ## Spiel betreten ohne Reservierungscode