Protokoll des UrServers, Version 1.13
In diesem Dokument wird das Protokoll beschrieben, mit dem mit dem UrServer
kommuniziert werden kann.
Falls dir ein Fehler im Protokoll, etwas, das im Protokoll fehlt oder
ein Fehler im Server auffällt, schreib mir doch bitte eine Mail mit einer
möglichst genauen Fehlerbeschreibung an berndts-bugs@mi.fu-berlin.de
Legende
Befehle, also das, was ein Klient an den Server schickt, haben diese Farbe:
BEFEHL
Meldungen, das, was der Server informativ an die Klienten schickt, haben diese Farbe:
MELDUNG
Aufforderungen, die der Server an die Klienten schickt, haben diese Farbe:
AUFFORDERUNG
Fehler, die der Server schickt, haben diese Farbe:
FEHLER
Wenn im Protokoll von "N" in Zusammenhang mit einer Zahl geschrieben wird,
ist damit die Anzahl der Spielerinnen gemeint. "farbeN-1" bedeutet z.B.
bei vier Spielerinnen dann "farbe3".
Alle anderen Variablen für Zahlen sind anders bezeichnet.
Eine farbe
hat immer den Typ int
.
Index Konstanten
Vor dem Spiel
-
Mit der Befehlsfolge
NEU anzahlSpielerinnen::int
NAME spielname::String
PASSWORT passwort::String
TIMEOUT timeout::int
kann das Spiel spielname
angemeldet werden.
Der Name und das Paßwort dürfen nur die Zeichen 'a'-'z',
'A'-'Z', '_' sowie '0'-'9' enthalten und werden nach jeweils
15 Zeichen abgeschnitten.
Das Timeout wird in Millisekunden angegeben.
Der Server bestätigt die Anmeldung mit der Meldung
-
SPIEL_ANGEMELDET spielname::String
-
Mit dem Befehl
LISTE
kann eine Liste aller auf diesem Server laufenden Spiele
angefordert werden. Der Server antwortet folgendermaßen:
-
SPIELE anzahl::int
SPIEL name::String public::{0,1} status::{0,1,2} angemeldeteSpielerinnen::int maximalAnzahlSpielerinnen::int
Wiederholung für jedes Spiel
public
bedeutet dabei "Ohne Paßwort" und
der status
ist 0 bei einem noch nicht gestarteten,
1 bei einem gestarteten sowie 2 bei einem beendeten Spiel.
-
Mit der Befehlsfolge
TEILNEHMEN spielname::String
PASSWORT passwort::String
NAME spielerinName::String
kann am Spiel spielname
teilgenommen werden.
Der Name wird nach 15 Zeichen abgeschnitten.
-
Der Server bestätigt die Anmeldung mit einer Meldung an die
Spielerin:
SPIELERIN_AKZEPTIERT farbe::int name::String
-
sowie mit einer Meldung an alle bereits angemeldeten Spielerinnen
und Zuschauerinnen:
SPIELERIN_ANGEMELDET farbe::int name::String
-
Mit der Befehlsfolge
ZUSCHAUEN spielname::String
NAME zuschauerinName::String
kann beim Spiel spielname
zugeschaut werden.
Der Name wird nach 15 Zeichen abgeschnitten.
Wenn sich eine Zuschauerin anmeldet, schickt ihr der Server
automatisch den Spielstatus und das Spielfeld.
Der Server bestätigt die Anmeldung mit einer Meldung
an alle bereits angemeldeten Spielerinnen und Zuschauerinnen:
-
ZUSCHAUERIN_ANGEMELDET name::String
-
Wenn sich eine Zuschauerin wieder abmeldet, schickt der Server
auch eine Meldung:
ZUSCHAUERIN_ABGEMELDET name::String
-
Der Befehl
STATUS spielname::String
zeigt den Status des Spieles spielname
in folgendem Format an:
-
STATUS spielname::String
TIMEOUT timeout::intANZAHL_SPIELERINNEN angemeldet::int maximal::int
ANZAHL_NAEHRSTOFFE anzahlProFarbe::int
ANZAHL_AMOEBEN anzahlProFarbe::int
LAENGE_LAUFBAHN laenge::int
LAENGE_ZIELZONE laenge::int
UMWELTKARTE bewegungsrichtung::int ozonschichtdicke::int
SPIELERIN farbe::int
Alles ab hier nur, wenn die Spielerin sich schon angemeldet hat.
NAME name::String
PUNKTE punktzahl::int
BIOPUNKTE anzahlBiopunkte::int
AMOEBEN anzahl::int
AMOEBE nummer::int schadenspunkte::int
Wiederholung für alle Amöben auf dem Spielfeld
GENE anzahl::int
GEN nummer::int
Wiederholung für alle Gene, die die Spielerin besitzt
Wiederholung für alle anderen Spielerinnen
ZUSCHAUERIN name::String
Wiederholung für alle anderen Zuschauerinnen
STATUS_ENDE spielname::String
-
Mit dem Befehl
PING
kann die Laufzeit zum Server gemessen werden. Dieser antwortet mit
-
PONG
-
Mit dem Befehl
VERSION
kann die Version des Servers angezeigt werden. Dieser antwortet mit
-
VERSION version::String
-
Mit dem Befehl
ABMELDEN
kann die Verbindung zum Server beendet werden.
Im Spiel
Immer
-
Mit dem Befehl
ABMELDEN
kann die Verbindung zum Server beendet werden.
-
Das wird vom Server dann mit der Meldung
SPIELERIN_ABGEMELDET farbe::int
an alle noch angemeldeten Spielerinnen und Zuschauerinnen
gemeldet. Wenn das Spiel noch nicht gestartet hat, wird
dadurch der Platz der gegangenen Spielerin frei.
-
Der Befehl
NACHRICHT nachricht::String
schickt eine Textnachricht (die nach
70 Zeichen abgeschnitten
wird) an alle anderen Mitspielerinnen und alle
Zuschauerinnen. Und zwar in der Form
-
NACHRICHT vonFarbe::int nachricht::String
-
Und wenn der Inhalt nur für eine der Mitspielerinnen gedacht ist:
PRIVAT_NACHRICHT zielFarbe::int nachricht::String
schickt die Nachricht (die ebenfalls nach
70 Zeichen abgeschnitten
wird) an die Mitspielerin mit der Farbe zielFarbe
.
-
Das kommt dann folgendermaßen an:
PRIVAT_NACHRICHT vonFarbe::int nachricht::String
-
Wer sich das Spielfeld anzeigen lassen möchte, schickt den Befehl
SPIELFELD
Der Server antwortet dann so:
-
SPIELFELD maxX::int maxY::int
Für jedes Spielfeldchen entweder
FELDCHEN x y UNGUELTIG
oder
FELDCHEN x y amoebenFarbe0:naehrstoffeFarbe0 ... amoebenFarbeN-1:naehrstoffeFarbeN-1
und am Schluß dann noch
SPIELFELD_ENDE
Die Amöben sind durch ihre durch Kommata getrennten Nummern identifiziert.
Dazu ein Beispiel für das Feld (2,4):
Die Farbe 0 hat die Amöben 2, 3 und 5 sowie 3 Nährstoffe,
die Farbe 1 hat keine Amöbe, aber 12 Nährstoffe,
die Farbe 2 hat die Amöben 0 und 6 sowie 1 Nährstoff und
die Farbe 3 hat die Amöbe 8, aber keinen Nährstoff auf dem Feld:
2 4 2,3,5:3 -:12 0,6:1 8:0
-
Für den Testbetrieb gedacht ist der Befehl
SPIELFELD2
Auch dieser erreicht, daß als Antwort das Spielfeld geschickt wird.
In dieser Version stehen allerdings wesentlich weniger Informationen zur Verfügung:
-
SPIELFELD2 maxX::int maxY::int
Das Spielfeld wird als Matrix dargestellt. Jedes Spielfeldchen
hat entweder die Form
(amoeAnzFarbe0:naehrstFarbe0 ... amoeAnzFarbeN-1:naehrstFarbeN-1)
oder die Form
(UNGUELTIG)
am Schluß kommt dann auch die Meldung
SPIELFELD_ENDE
Da das Spielfeld so dargestellt sein soll, daß es durch einen Menschen gut
lesbar ist, sind die Spielfeldchen so angeordnet wie Sie im Spiel erscheinen.
Das ist dann schlecht durch den Computer verarbeitbar.
Ein Beispiel ohne weitere Erläuterungen:
SPIELFELD2 2 2
(0:2 4:7 2:1 0:0) (0:5 0:2 1:4 5:12)
(1:0 2:2 0:4 0:14) (2:7 0:0 4:5 0:1)
SPIELFELD_ENDE
Das erklärt sich -- glaube ich -- von selbst ganz gut.
-
Im Spiel funktioniert der Befehl
STATUS
nur ohne Parameter. Der Server antwortet aber genauso wie
außerhalb eines Spiels. Siehe STATUS
-
Auch zu Testzwecken ist folgender Befehl gedacht:
TELNET_STATUS
Er liefert eine menschenlesbare Statusmeldung, die aber schlecht durch
den Computer verarbeitbar ist. Ich schreibe das Format hier nicht hin;
Schaue es dir einfach an.
-
Um sich die aktuell gültige Umweltkarte anzusehen, kann der Befehl
UMWELTKARTE
gesendet werden. Der Server antwortet genauso, wie er die Meldung in
der zweiten Phase schickt. Siehe UMWELTKARTE
-
Um rauszufinden, wieviele Gene es im aktuellen Spiel von einer Sorte
gibt, kann der Befehl
GEN_ANZAHL nummer::int
benutzt werden. Der Server antwortet mit der Meldung
-
GEN_ANZAHL nummer::int anzahl::int
-
Auch in einem Spiel funktioniert der Befehl
PING
Zur Erläuterung siehe PING
-
Immer, wenn eine Spielerin Biopunkte erhält oder verliert, meldet
der Server dies an alle Spielerinnen und Zuschauerinnen:
BIOPUNKTE farbe::int differenz::int
Die differenz
kann dabei auch negativ sein, das
bedeutet dann Punktverlust.
-
Auch, wenn Nährstoffe in ein Feld kommen, meldet der Server dies:
NAEHRSTOFF farbe::int anzahl::int x::int y::int
Spielbeginn
-
Die Meldung
SPIEL_BEGINNT
signalisiert den Spielbeginn, in dessen Anschluß sofort das Spielfeld
der Spielstatus an alle geschickt wird.
-
Anschließend wird gleichzeitg an alle Spielerinnen die Aufforderung
ZUG_BEREIT
gesandt. Jetzt besteht noch die Möglichkeit, sich jede Menge
Informationen abzurufen, da diese Aufforderung den dreifachen
Timeout des Spieltimeouts hat.
-
Wenn die Spielerin bereit ist, schickt sie den Befehl
BEREIT
-
Und das wird natürlich auch allen anderen gemeldet:
BEREIT farbe::int
-
Die Meldung
ZUG_POSITION {0,1}^n
fordert dazu auf, eine Position auf der Laufbahn zu wählen.
Die {0,1}^n-Folge zeigt an, welche Positionen noch frei sind.
0 bedeutet dabei, daß die Position noch frei ist.
Die Reihenfolge, in der die Spielerinnen aufgefordert werden,
wurde zuvor vom Server zufällig bestimmt.
Die richtige Antwort auf diese Aufforderung lautet
-
POSITION position::int
wobei position
eine (freie) Position zwischen
0 und AnzahlSpielerinnen-1 ist.
Der Server schickt dann auch noch eine Meldung an alle:
-
POSITION farbe::int position::int
-
Wenn alle Spielerinnen ihre Position gewählt haben, fordert der
Server diese der Reihe nach auf, ihre ersten Amöben zu setzen:
ZUG_AMOEBE_SETZEN
Diese muß beantwortet werden mit dem Befehl
-
AMOEBE_SETZEN amoebennummer::int x::int y::int
und wird bestätigt mit der Meldung
AMOEBE_SETZEN farbe::int amoebennummer::int x::int y::int
AMOEBE_SETZEN_ENDE farbe::int
Spielverlauf
Rundenbeginn
-
Zu Beginn jeder Runde wird die Meldung
RUNDE rundenNummer::int
verschickt.
Phase 1 - Bewegen und Fressen
-
Die erste Phase wird mit der Aufforderung
ZUG_BEWEGEN amoebennummer::int
eingeleitet, die mit dem Befehl
-
BEWEGEN amoebennummer::int richtung::int
beantwortet wird.
Wenn die Amöbe sich treiben lassen soll, muß als Richtung die
gerade gültige Strömungsrichtung angegeben werden.
Wenn die Amöbe am Spielfeldrand steht und in Richtung des
Randes bewegt werden müßte, muß als Richtung "Stehen
bleiben" angegeben werden.
Bestätigt wird der Zug mit der Meldung (an alle)
-
BEWEGUNG farbe::int amoebennr::int richtung::int
BEWEGUNG_ENDE farbe::int amoebennr::int
Dieser Block wird eventuell durch Tentakeln, Klammern oder Flucht noch
größer, siehe dort.
-
Wenn gewürfelt werden soll, kann auch erst der Befehl
WUERFELN
gesendet werden, der die Antwort (an alle!)
-
WUERFEL farbe::int wuerfel1::int wuerfel2::int
verursacht. Bei Bewegungen ohne Gene darf nur der erste
Würfel benutzt werden.
-
Wenn die Amöbe bewegt wurde, muß sie fressen. Dazu fordert der
Server mit der Meldung
ZUG_FRESSEN amoebennummer::int
auf. Der Klient antwortet im einfachsten Fall mit dem Befehl
-
FRESSEN amoebennummer::int farbe0:farbe1:..:farbeN-1
Der zweite Parameter gibt die Anzahl der Nährstoffe pro Farbe an,
die gefressen werden sollen. Die Anzahlen werden durch Doppelpunkte
getrennt. Wenn also die Amöbe mit der Nummer 4 zwei Nährstoffe der
Farbe 0, einen der Farbe 1, keinen der Farbe 2 und einen der Farbe 3
fressen soll, lautet der Befehl dann
FRESSEN 4 2:1:0:1
Bestätigt wird der Zug mit der Meldung (an alle)
-
FRESSEN farbe::int amoebennr::int farbe0:farbe1:..:farbeN-1
-
Wenn Nährstoffe in ein Feld gesetzt werden, wird dies mit der Meldung
NAEHRSTOFF farbe::int anzahl::int x::int y::int
bekanntgegeben
-
Immer, wenn eine Amöben einen Schadenspunkte erhält, wird die Meldung
AMOEBE_SCHADEN farbe::int amoebennr::int
geschickt.
Auswirkungen von Genen:
-
BEWEGUNG1:
Auch der zweite Würfel darf benutzt werden.
-
BEWEGUNG2:
Die Richtung kann frei gewählt werden. Es MUSS aber vorher
gewürfelt werden! (Damit ein Biopunkt abgezogen wird.)
-
GESCHWINDIGKEIT und GEN_AUSDAUER:
Die Aufforderung zum Bewegen kommt zweimal, wenn die erste
Bewegung kein Treiben war.
-
Wenn keine zweite Bewegung durchgeführt werden soll,
muß der Befehl
KEINE_ZWEITE_BEWEGUNG amoebe::int
gesendet werden.
-
STROMLINIENFORM:
Es werden automatisch keine Biopunkte abgezogen.
-
Wenn bei einer Bewegung Nährstoffe mitgezogen werden sollen,
muß vor der Bewegung der Befehl
TENTAKEL amoebe::int farbe0:farbe1:..:farbeN-1
aufgerufen werden. Der zweite Parameter funktioniert genauso wie
beim Fressen.
-
Der Server schickt dann folgende Zeile im Bewegungsblock mit:
TENTAKEL farbe0:farbe1:..:farbeN-1
-
Wenn sich eine Amöbe am Boden festklammern will, kann sie das einfach
tun, indem sie stehenbleibt.
-
Wenn eine Spielerin mit dem Gen KLAMMERN
eine Amöbe in einem Feld hat, aus dem sich eine andere
wegbewegt, wird ihr folgende Zugaufforderung geschickt:
ZUG_KLAMMERN amoebe::int mitfahrFarbe::int mitfahrAmoebe::int richtung::int farbe0:farbe1:..:farbeN-1
Der letzte Parameter gibt an, welche Nährstoffe die
mitfahrAmoebe
per TENTAKEL mitnimmt.
-
Diese wird entweder mit dem Befehl
NICHT_KLAMMERN amoebe::int mitfahrFarbe::int mitfahrAmoebe::int
beantwortet, wenn sich die Amöbe nicht festklammern soll oder, wenn doch:
-
KLAMMERN amoebe::int mitfahrFarbe::int mitfahrAmoebe::int
-
Das Klammern wird dann im Bewegungsblock der sich eigentlich
am Zug befindlichen Amöbe mit folgender Zeile mitgeteilt:
KLAMMERN farbe::int amoebe::int
-
ERSATZKOST und GENUEGSAMKEIT:
Einfach fressen :-) Wenn die Kombination eine gültige ist, klappt das.
-
PARASITISMUS:
Um dieses Gen zu benutzen, muß vor dem eigentlichen Fressen der Befehl
PARASITISMUS amoebenNummer::int gegenFarbe::int
aufgerufen werden. gegenFarbe
ist die Farbe der Spielerin,
die angezapft werden soll. Danach kann dann eben ein Nährstoff weniger
gefressen werden. Wenn die Amöbe trotzdem hungert, passiert nichts
weiter, außer daß die Spielerin eine Fehlermeldung bekommt; wenn die
die Amöbe frißt, sendet der Server als Meldung dafür, daß
PARASITISMUS
angewandt wurde, die Meldung
-
PARASITISMUS farbe::int amoebenNr::int gegenFarbe::int
-
UEBERLEBENSKAMPF und AGGRESSION:
Ein Überlebenskampf wird mit dem Befehl
UEBERLEBENSKAMPF amoebenNummer::int fremdeAmoebenFarbe::int fremdeAmoebenNummer::int
begonnen. Er gelingt automatisch, wenn die angegriffenen Spielerin
weder das Gen PANZERUNG
noch das Gen FLUCHT
noch das Gen VERTEIDIGUNG
besitzt oder wenn sie sich die entsprechende Aktion nicht leisten kann.
-
Damit alle den Angriff mitbekommen, informiert der Server mit
der Meldung
AMOEBE_ANGEGRIFFEN angegriffeneFarbe::int angegriffeneAmoebe::int angreifendeFarbe::int angreifendeAmoebe::int
-
Wenn die angegriffene Spielerin ein passendes Abwehrgen
hat, wird dies an alle gemeldet:
ABWEHR farbe::int amoebe::int
-
Die betroffene Spielerin bekommt zusätzlich noch die Aufforderung
ZUG_ABWEHR amoebe::int angreifendeFarbe::int angreifendeAmoebe::int wasDarfSieTun::int
wasDarfSieTun
hat folgende Kodierung:
-
0: Es darf nur geflohen werden.
-
1: Es darf nur verteidigt werden.
-
2: Es darf geflohen und verteidigt werden.
Diese Aufforderung wird wiederholt, wenn:
-
die Spielerin sowohl fliehen als auch sich verteidigen darf, eines
davon getan hat und dieses erfolglos war.
-
die Spielerin bereits einmal geflohen ist, aber das Gen GESCHWINDIGKEIT besitzt. Achtung: das geht nur direkt nach der ersten Flucht!
Die Aufforderung kann auf zwei Arten beantwortet werden:
-
Wenn die Amöbe fliehen soll, wird der Befehl
FLUCHT amoebe::int richtung::int
geschickt. Vorher muß gewürfelt werden!
-
Eine Flucht wird fast wie eine Bewegung an alle gemeldet;
der einzige Unterschied ist, daß im Bewegungsblock die Zeile
FLUCHT
mitgeschickt wird.
-
Wenn nicht (weiter) geflohen werden soll, wird der Befehl
KEINE_FLUCHT amoebe::int
geschickt.
-
Wenn die Amöbe versuchen soll, sich zu verteidigen, muß der Befehl
VERTEIDIGUNG amoebe::int
geschickt werden. In diesem Fall würfelt der Server aus, wer gewinnt.
-
Wenn dies nicht versucht werden soll, muß der Befehl
KEINE_VERTEIDIGUNG amoebe::int
geschickt werden.
-
Wenn die Verteidigung erfolglos war (oder keine versucht wurde),
meldet dies der Server folgendermaßen:
VERTEIDIGUNG_ERFOLGLOS farbe::int amoebe::int
-
Andernfalls so:
VERTEIDIGUNG_ERFOLGREICH farbe::int amoebe::int
-
GEN_AUSDAUER:
Wird bei den letztgenannten Aktionen automatisch eingesetzt. Es
wird also eventuell vom UrServer zweimal gewürfelt.
-
PANZERUNG:
Wirkt automatisch.
Phase 2 - Umwelt und Gendefekte
-
Wenn alle Amöben gefressen haben, wird eine neue Umweltkarte gezogen:
UMWELTKARTE stroemungsrichtung::int ozonschichtdicke::int
-
Anschließend müssen eventuell Gendefekte ausgeglichen werden.
Dazu fordert der Server -- nur, wenn es nötig ist! -- mit
folgender Meldung auf:
ZUG_GENDEFEKTE
Die richtige Antwort lautet entweder:
-
DEFEKT_AUSGLEICHEN
wenn die Gendefekte nur mit Biopunkten ausgeglichen werden sollen oder
DEFEKT_AUSGLEICHEN genNummer1::int ... genNummerM::int
wenn auch Gene abgegeben werden sollen. In diesem Fall wird die
noch bleibende Differenz dann automatisch mit Biopunkten beglichen.
-
Der Server informiert alle Spielerinnen und Zuschauerinnen mit
folgender Meldung über die Genverluste (Biopunktverluste werden wie
unter BIOPUNKTE beschrieben gemeldet):
DEFEKT_AUSGLEICHEN farbe::int
ABGEBEN genNummer1::int
...
ABGEBEN genNummerM::int
DEFEKT_AUSGLEICHEN_ENDE farbe::int
Auswirkungen von Genen:
-
STRAHLENSCHUTZ:
Wirkt automatisch.
Phase 3 - Gene kaufen
-
Zum Kaufen von Genen fordert der Server mit der Meldung
ZUG_GEN_KAUFEN
auf. Die passende Antwort lautet
-
GEN_KAUFEN
GEN genNummer1::int
...
GEN genNummerM::int
GEN_KAUFEN_ENDE
Wenn kein Gen gekauft wird, muß zumindest
GEN_KAUFEN
GEN_KAUFEN_ENDE
gesendet werden.
Wenn das Gen PANZERUNG
gekauft werden soll und die Spielerin sowohl das Gen
VERTEIDIGUNG als auch
das Gen FLUCHT besitzt,
muß als zweiter Parameter auch noch die Nummer des Genes angegeben werden,
das abgegeben werden soll. Also entweder
GEN 19 4
oder
GEN 19 5
Bei allen anderen höheren Genen zieht der Server die abzugebenden niedrigen
automatisch ein.
-
Der Server informiert über gekaufte (und im Zuge dessen abgegebene) Gene
folgendermaßen:
GEN_KAUFEN farbe::int
GEN genNummer1::int
...
GEN genNummerM::int
ABGEBEN abgeben1::int
...
ABGEBEN abgebenL::int
GEN_KAUFEN_ENDE farbe::int
Phase 4 - Zellteilung
-
Die Phase 4 wird durch die Aufforderung
ZUG_AMOEBE_SETZEN
eingeleitet. Diese wird beantwortet mit dem Befehl
-
AMOEBE_SETZEN amoebenNummer1::int x::int y::int
...
AMOEBE_SETZEN amoebenNummerM::int x::int y::int
AMOEBE_SETZEN_ENDE
Wenn keine Amöben gesetzt werden sollen, reicht ein
AMOEBE_SETZEN_ENDE
-
Der Server leitet die Information in folgendem Format weiter:
AMOEBE_SETZEN farbe::int amoebenNummer1::int x::int y::int
...
AMOEBE_SETZEN farbe::int amoebenNummerM::int x::int y::int
AMOEBE_SETZEN_ENDE farbe::int
Auswirkungen von Genen:
-
SPOREN:
Wirkt automatisch. Amöben können irgendwo hingesetzt werden.
-
TEILUNGSRATE:
Wirkt automatisch. Amöben kosten weniger Biopunkte.
Phase 5 - Todesfälle
-
Wenn eine Amöbe stirbt, wird folgende Meldung geschickt:
AMOEBE_ENTFERNT farbe::int amoebenNummer::int
Auswirkungen von Genen:
-
LEBENSERWARTUNG:
Wirkt automatisch.
-
AGGRESSION:
Die Spielerin, die das Gen besitzt, wird aufgefordert, es anzuwenden:
-
ZUG_AGGRESSION
-
Dies kann beantwortet werden mit dem Befehl
AGGRESSION amoebe::int gegenFarbe::int gegenAmoebe::int
wenn eine Amöbe aggressiv werden soll und wird dann an alle gemeldet:
-
AGGRESSION farbe::int amoebe::int gegnerin::int gegenAmoebe::int
-
Soll die Amöbe friedlich bleiben, ist der Befehl
KEINE_AGGRESSION
der richtige.
-
PANZERUNG:
Wirkt automatisch.
Phase 6 - Wertung
-
Nachdem die Punkte berechnet wurden, wird für jede Farbe
folgende Meldung gesendet:
PUNKTE farbe::int gesamtpunktzahl::int
Auswirkungen von Genen:
-
INTELLIGENZ:
Wird selbstverständlich mitgezählt.
-
STRAHLENSCHUTZ:
Ebenso selbstverständlich nicht mitgezählt.
-
Und höhere Gene zählen auch im UrServer doppelt.
Spielende
-
Wenn das Spielende erreicht ist, wird die Meldung
SPIEL_BEENDET
gesendet.
-
Wenn der Server nicht im Turniermodus gestartet wurde, bleiben die
Sockets der Spielerinen und Zuschauerinnen noch für 30 Minuten
geöffnet, damit sich die Spielerinnen noch unterhalten können.
Befehle
ABMELDEN
ABMELDEN
AGGRESSION
AMOEBE_SETZEN
AMOEBE_SETZEN (2)
BEREIT
BEWEGEN
DEFEKT_AUSGLEICHEN
FLUCHT
FRESSEN
GEN_ANZAHL
GEN_KAUFEN
KEINE_AGGRESSION
KEINE_FLUCHT
KEINE_VERTEIDIGUNG
KEINE_ZWEITE_BEWEGUNG
KLAMMERN
LISTE
NACHRICHT
NEU
NICHT_KLAMMERN
PARASITISMUS
PING
POSITION
PRIVAT_NACHRICHT
SPIELFELD
SPIELFELD2
STATUS
STATUS(im Spiel)
TEILNEHMEN
TELNET_STATUS
TENTAKEL
UEBERLEBENSKAMPF
UMWELTKARTE
VERSION
VERTEIDIGUNG
WUERFELN
ZUSCHAUEN
Aufforderungen
ZUG_ABWEHR
ZUG_AGGRESSION
ZUG_AMOEBE_SETZEN
ZUG_AMOEBE_SETZEN
ZUG_BEREIT
ZUG_BEWEGEN
ZUG_FRESSEN
ZUG_GENDEFEKTE
ZUG_GEN_KAUFEN
ZUG_KLAMMERN
ZUG_POSITION
Meldungen
ABWEHR
AGGRESSION
AMOEBE_ANGEGRIFFEN
AMOEBE_ENTFERNT
AMOEBE_SCHADEN
AMOEBE_SETZEN
BEREIT
BEWEGUNG
BIOPUNKTE
DEFEKT_AUSGLEICHEN
FLUCHT
FRESSEN
GEN_ANZAHL
GEN_KAUFEN
KLAMMERN
NACHRICHT
NAEHRSTOFF
NAEHRSTOFF
PARASITISMUS
PONG
POSITION
PRIVAT_NACHRICHT
PUNKTE
RUNDE
SPIELE
SPIELERIN_ABGEMELDET
SPIELERIN_AKZEPTIERT
SPIELERIN_ANGEMELDET
SPIELFELD
SPIELFELD2
SPIEL_ANGEMELDET
SPIEL_BEENDET
SPIEL_BEGINNT
STATUS
TENTAKEL
UMWELTKARTE
VERSION
VERTEIDIGUNG_ERFOLGLOS
VERTEIDIGUNG_ERFOLGREICH
WUERFEL
ZUSCHAUERIN_ABGEMELDET
ZUSCHAUERIN_ANGEMELDET
Richtungen
- Westen: 1
- Norden: 2
- Osten: 3
- Süden: 4
- Stehen bleiben: 5
Gene
- 0: INTELLIGENZ
- 1: BEWEGUNG1
- 2: SPOREN
- 3: GESCHWINDIGKEIT
- 4: VERTEIDIGUNG
- 5: FLUCHT
- 6: ERSATZKOST
- 7: STRAHLENSCHUTZ
- 8: STROMLINIENFORM
- 9: TENTAKEL
- 10: KLAMMERN
- 11: LEBENSERWARTUNG
- 12: GENUEGSAMKEIT
- 13: UEBERLEBENSKAMPF
- 14: PARASITISMUS
- 15: TEILUNGSRATE
- 16: GEN_AUSDAUER
- 17: BEWEGUNG2
- 18: AGGRESSION
- 19: PANZERUNG
Fehler
- 1: Die angegebene Amöbe ist nicht am Zug.
- 2: Die Amöbe steht nicht da, wo die Spielerin sie vermutet.
- 3: Die Amöbe kann nicht noch einmal ins Spielfeld gesetzt werden.
- 4: Die Anzahl der Spielerinnen liegt nicht zwischen 3 und 4
- 5: In Phase 2 wurde versucht, ein Gen doppelt abzugeben.
- 6: In Phase 3 wurde versucht, ein Gen ein zweites Mal zu kaufen.
- 7: Nährstoffe der eigenen Farbe dürfen nicht gefressen werden.
- 8: Das Paßwort ist falsch.
- 9: Beim Kauf des Genes PANZERUNG wurde nicht angegeben, welches der beiden möglichen niedrigen Gene abgegeben werden soll.
- 10: Es sollte ein Gen verwendet werden, daß der Spielerin nicht gehört.
- 11: Das Gen ist ausverkauft.
- 12: Es darf nicht gehungert werden, wenn es nicht sein muß.
- 13: Fehler bei der Anmeldung.
- 14: Der Parameter war keine Zahl.
- 15: Der Server nimmt keine weiteren Spiele mehr auf.
- 16: Der Name ist bereits vergeben.
- 17: Die Spielerin ist nicht am Zug.
- 18: Die Biopunkte reichen nicht aus.
- 19: Nährstoffmangel.
- 20: Es sollte eine (echte) Bewegung ausgeführt werden, ohne daß gewürfelt wurde.
- 21: Die Anzahl der Parameter paßt nicht zum Befehl.
- 22: Mindestens ein Parameter ist ungültig.
- 23: PARASITISMUS darf nur angewendet werden, wenn nicht gehungert wird.
- 24: Es wurde bereits gewürfelt.
- 25: Das angegebene Spielfeldchen ist ungültig.
- 26: Das Spiel läuft nicht.
- 27: Das Spiel ist nicht vorhanden.
- 28: Das Spiel ist schon voll.
- 29: Der Timeout wurde überschritten.
- 30: Der Befehl ist (zumindest in diesem Kontext) unbekannt.
- 31: Beim Kampf ums Überleben wurde entweder eine Amöbe angegriffen, die das GenPANZERUNG besitzt oder die Amöbe wollte sich selber angreifen oder die Amöbe mußte gar nicht hungern.
- 32: Die Richtung ist für diesen Zug ungültig.
- 33: Es darf nicht mehr gefressen werden als notwendig.
- 34: Nach dem Würfeln muß eine Amöbe sich auch bewegen.
- 35: Beim Tentakeln zu viele Nährstoffe mitgenommen.
- 36: Tentakelt ist tentakelt. Umentscheiden geht nicht.
- 37: Du bist schon geflohen.
- 38: Du hast dich schon verteidigt.