Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
ffprog:ffprogjava2016:projekt [2016/10/11 09:41] Ivo Blöchliger |
ffprog:ffprogjava2016:projekt [2016/11/04 08:29] (current) Ivo Blöchliger [Source Code] |
||
---|---|---|---|
Line 3: | Line 3: | ||
Ziel: Ihr Programm steuert eine Schlange und tritt gegen andere Programme an. | Ziel: Ihr Programm steuert eine Schlange und tritt gegen andere Programme an. | ||
- | ==== Spezifikation | + | ==== Kommunikations Protokoll |
- | Die Kommunikation zwischen Spielserver und Spielstrategie erfolgt über ein ASCII-Protokoll. Dieses wird über ein Interface | + | Die Kommunikation zwischen Spielserver und Spielstrategie erfolgt über ein ASCII-Protokoll. Dieses wird über das Netzwerk (TCP) ausgetauscht. |
+ | |||
+ | [[ffprog: | ||
+ | |||
+ | ==== Regeln ==== | ||
+ | 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 10x10 haben und von Mauern '#' | ||
+ | |||
+ | === 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. | ||
+ | |||
+ | |||
+ | |||
+ | ===== Source Code ===== | ||
+ | * {{ : | ||
+ | |||
+ | === Anleitung === | ||
+ | Am einfachsten wird wie Klasse snake.strategies.simple.SimpleStrategy umbenannt (dabei kann auch gleich das package ' | ||
+ | |||
+ | Was fehlt ist eine Klasse Field im gleichen Package. Entweder können alle Referenzen daraus entfernt werden | ||
+ | |||
+ | In der Klasse Field wird das Spielfeld und alle weitere Information gespeichert, | ||
+ | |||
+ | === Ausführung === | ||
+ | * snake.server.Server starten | ||
+ | * snake.strategies.hansli.HansliStrategy starten | ||
- | [[ffprog: |