ffprog:ffprogjava2016:projekt

Ziel: Ihr Programm steuert eine Schlange und tritt gegen andere Programme an.

Die Kommunikation zwischen Spielserver und Spielstrategie erfolgt über ein ASCII-Protokoll. Dieses wird über das Netzwerk (TCP) ausgetauscht.

Protokoll-Spezifikation

Das Spielfeld besteht aus einem 2-dimensionalen Feld mit diskreten Feldern. Auf diesen Feldern wird eine Schlange gesteuert. Wird die Schlange auf ein Feld gesteuert, das nicht frei ist (mit Ausnahme des Apfels), stirbt die Schlange und wird schrittweise verschwinden. Werden mehrere Schlangen auf das gleiche Feld gesteuert, sterben alle diese Schlangen. Wird ein Apfel gefressen, wird die Schlange länger und erhält Zusatzpunkte.

Spielfeld

Das Feld muss mindestens die Grösse 10×10 haben und von Mauern '#' umrahmt sein. Es muss ebenfalls für jeden Spieler genau eine Startposition markiert sein.

Punkte

  • 1 Punkt pro Spielzug
  • 2000 Punkte pro Apfel
  • 10000 Punkte, wenn die eigene Schlange von einer anderen gerammt wird.

Spielende

Das Spiel endet wenn:

  • Alle Schlangen gestorben sind.
  • Seit 2000 Schritten kein Apfel mehr gefressen wurde.

Anleitung

Am einfachsten wird wie Klasse snake.strategies.simple.SimpleStrategy umbenannt (dabei kann auch gleich das package 'simple' umbenannt werden). Z.B. snake.strategies.hansli.HansliStrategy. Alles was die Kommunikation vor dem Spielstart beinhaltet, ist bereits programmiert.

Was fehlt ist eine Klasse Field im gleichen Package. Entweder können alle Referenzen daraus entfernt werden oder eine Klasse Field im gleichen Package angelegt und die nötigen Methoden implementiert werden.

In der Klasse Field wird das Spielfeld und alle weitere Information gespeichert, die zur Steuerung der Schlange benötig wird.

Ausführung

  • snake.server.Server starten
  • snake.strategies.hansli.HansliStrategy starten
  • ffprog/ffprogjava2016/projekt.txt
  • Last modified: 2016/11/04 08:29
  • by Ivo Blöchliger