Die Klasse “Map” verwaltet die Spielkarte der Welt.
width
: Breite der Karteheight
: Höhe der Kartefields
: Zweidimensionales Array mit Field
-Objekten.hive_count
: Anzahl der AmeisenvölkerBeispiel
[ { "xcoord": 7, "ycoord": 12 }, { "xcoord": 45, "ycoord": 3 }, ]
Alle Ameisenvölker sollen vergleichbare Bedingungen beim Start des Spiels haben. Um eine Chancengleichheit zu gewährleisten, müssen für alle Völker …
Variante 1: Zufallskarte
Die Karte kann zufällig generiert werden.
Variante 2: Vordefinierte Kartenteile
Bei diesem Ansatz werden mehrere Varianten von Kartenteilen mit jeweils einem Hügel und 3-4 Nahrungsquellen definiert.
Aus diesen Varianten dieser Teilkarten wählt das Programm eine Teilkarte aus, wobei für jedes Volk die gleiche Teilkarte verwendet wird.
Diese Teilkarten werden gleichmässig angeordnet und allfällige Lücken mit zufälligen Feldern aufgefüllt.
Abbildung: Anordnung der Kartenteile für 3,4 und 6 Spieler
xcoord
: Die X-Koordinate einer Ameise.ycoord
: Die Y-Koordinate einer Ameise.color
: Die Farbe des Ameisenvolksrange
: Die Sichtweite einer AmeiseEin JSON-Array mit den Zuständen der Felder. Jedes Feld kann einen dieser Zustände haben:
Es wird immer nur der erste zutreffende Zustand ausgegeben.
Ist also in einem Feld eine eigene Ameise und Nahrung, wird nur ant angezeigt.
Die Reihenfolge der Felder ist immer von oben links nach unten rechts.
Dieses Beispiel zeigt die Umgebung einer Ameise mit einer Sichtweite 2. Die Ziffern entsprechen der Reihenfolge in der Response.
Keine
Ein zweidimensionales Array (list) mit den Feldern der Karte. Jedes Feld kann einen dieser Zustände haben:
Es wird immer nur der erste zutreffende Zustand ausgegeben. Zusätzlich wird bei ant und hill die Farbe mitgegeben, z.B. “ant red”, “hill blue”.
Ist also in einem Feld eine eigene Ameise und Nahrung, wird nur ant angezeigt.
Diese Methode setzt eine neue Ameise auf ein Feld.
xcoord
: Die X-Koordinate des Felds.ycoord
: Die Y-Koordinate des Felds.color
: Die Farbe des AmeisenvolksKeiner
Diese Methode entfernt eine Ameise auf einem Feld.
xcoord
: Die X-Koordinate des Felds.ycoord
: Die Y-Koordinate des Felds.color
: Die Farbe des AmeisenvolksKeiner
Diese Methode bewegt eine Ameise von einem Feld zu einem anderen Feld in der Weltkarte. Dazu erhält sie die Startposition (x/y-Koordinaten) und die Zielposition (x/y-Koordinaten).
xcoord_start
: Die X-Koordinate der Startposition.ycoord_start
: Die Y-Koordinate der Startposition.xcoord_target
: Die X-Koordinate der Zielposition.ycoord_target
: Die Y-Koordinate der Startposition.Der Returnwert ist eine Angabe zum Zielfeld:
“food”
: Nahrung vorhanden“water”
: Feld mit Wasser“home”
: Eigener Ameisenhügel“hill”
: Fremder Ameisenhügel“empty”
: Leeres FeldDie Methode ändert die Menge an Nahrung auf einem Feld.
xcoord
: Die X-Koordinate des Felds.ycoord
: Die Y-Koordinate des Felds.amount
: Die Menge an NahrungKeiner