-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Beschreibung
Das Spiel wird mit einer definierten Anzahl Runden gestartet. Spieler melden sich zu dem Spiel an und werden zufällig auf der Spielkarte positioniert. Per Zufall wird ein Spieler initial zum Fuchs/Gejagten erklärt. Somit sind alle anderen Spieler Jäger bis einer den Fuchs fängt und selbst zum neuen Fuchs wird. Pro Runde kann jeder Spieler einen Zug durchführen. Ein Zug ist entweder die Änderung der eigenen Position oder das Platzieren einer Bombe auf dem eigenen Feld. Wird ein Spieler von dem Strahl einer Bombe berührt so ist er gelähmt und muss die nächste Runde an seiner letzten Position aussetzen. Das Spiel endet nach Ablauf der Rundenanzahl. Sieger ist der Spieler mit den meisten Punkten. Pro Runde, die ein Spieler der Fuchs ist, bekommt er einen Punkt.
Runde
Eine Runde dauert so lange bis alle Spieler ihren nächsten Zug übermittelt haben.
Spieler
Ein Spieler ist ein Bot der an den Server angemeldet wurde und mit seiner implementierten Strategie teilnimmt.
Fuchs
Anfangs wird ein Spieler per Zufall zum Fuchs und kassiert pro Runde Punkte. Wird er von einem anderen Spieler gefangen, wird dieser andere Spieler zum Fuchs und an eine andere Position im Spielfeld teleportiert. Fangen mehrere Spieler den Fuchs gleichzeitig wird der Spieler zum Fuchs dessen Befehl am schnellsten eingegeben wurde.
Spielzüge
Mögliche Spielzüge:
- bewegen (oben, unten, links oder rechts)
- Bombe werfen
- aussetzen
Map
Die Map (gesamtes Spielfeld) ist eine quadratische Karte bestehend aus einer vorgegebenen Anzahl Felder. Ein Feld ist entweder frei oder ein Hindernis. Spieler können nur freie Felder betreten. Es können mehrere Spieler gleichzeitig auf dem selben freien Feld stehen. Hindernisse können mit Bomben entfernt werden. Ein Feld kann ein Special beinhalten das von Spielern eingesammelt werden kann.
Bombe
Bomben können von einem Spieler auf ein bestimmtes Feld geworfen werden. Nach einer bestimmten Anzahl Runden zünden sie sich selbst und erzeugen einen Strahl in alle vier Himmelsrichtungen. Zerstörbare Wände oder Specials die von einem Strahl getroffen werden, werden vernichtet. Der Strahl geht dann nur bis zum Gegenstand. Spieler die von einem Strahl getroffen werden, werden für eine bestimmte Anzahl Runden gelähmt und verlieren alle gesammelten Specials. Liegen mehrere Bomben auf dem gleichen Feld löst die Bombe die zuerst explodiert auch alle anderen Bomben auf dem Feld und in Reichweite aus. Somit ist bei mehreren Bomben die Bombe mit der größten Reichweite entscheidend.
Special
Specials werden zufällig auf dem Spielfeld verteilt und können von Spielern eingesammelt werden.
Folgende Specials gibts es:
- Bombenstrahlreichweite erhöhen
- Anzahl der Bomben erhöhen
- Schutz vor Bombenstrahl
Alle Spieler die gleichzeitig ein Feld mit einem Special betreten bekommen das Special. Nachdem ein Special aufgesammelt wurde verschwindet es.
Specials werden im Spielverlauf immer wieder an zufälligen Positionen erzeugt.
Wände
- Zerstörbare Wände: Können durch Bombenstrahlen vernichtet werden und ggf. ein Special freilegen
- Unzerstörbare Wände: Können nicht vernichtet werden und somit als Schutz dienen
Ende
Das Spiel endet nach der vorgegebenen Anzahl Runden.
Prinzipiell kann ein angemeldeter Bot/Spieler ein einfacher Telnet-Client sein der Befehle (Strings) an den Server überträgt.
Folgende Befehle kann der Server verarbeiten:
| Zeichen | Befehl | Kommentar |
|---|---|---|
| w | nach oben gehen | |
| a | nach links gehen | |
| s | nach unten gehen | |
| d | nach rechts gehen | |
| b[d][i] | Bombe i Felder in Richtung d werfen | b3n für 4 Felder nach oben |
| n | nichts tun | |
| q | Verbindung zu Server trennen |
Der Server wird in Go (1.6) programmiert.
Beispiel-Workspace:
$HOME/go/src/bomberman-server (bomberman-server-directory)
- Anwendung bauen: $ go install
- Server starten: in $HOME/go/bin/bomberman-server
Per Telnet auf Port 5000 verbinden.