UNI / FIN / IKS Arbeitsgruppe Computational Intelligence |
News-Archiv |
Implementierung eines eigenen SpielersUm ein Programm als Spieler zu nutzen, muss es in Java implementiert und von der Klasse Mithilfe der Zwei Methoden in
Das Gerüst des Programms sieht wie folgt aus ( package player.myplayer; import algds.Player; public class MyPlayer extends Player { public void play() { // hier führt das Programm einen Spielzug aus } public String getAuthor() { return "Vorname Nachname"; } } Die Methode Schließt ein Spieler mit einem Spielzug eine Mühle, wird seine Mögliche Spielzüge sind:
Als Beispiel für einen Spieler ist die Klasse Walter im Unterverzeichnis "player" gegeben. Sie beachtet (fast) alle Regeln des Spiels, verfolgt aber keine Strategie. SpielfeldDas Spielfeld ist als eindimensionales Array der Länge 24 (Indices 0 bis 23) gespeichert. Position 0 ist außen links oben. Von da aus wird im Uhrzeigersinn auf einem Ring und von außen nach innen gezählt. Ob zwei Spielsteine auf dem gleichen Ring (also Quadrat auf dem Spielfeld) liegen, kann man ermitteln, indem man ihre Indices durch 8 teilt. Ob zwei Spielsteine auf einer Linie aber unterschiedlichen Ringen liegen, kann man ermitteln, indem man ihre Indices modulo 8 rechnet. KompilierenAus dem "muehle"-Verzeichnis heraus kann der Spieler wie folgt kompiliert werden:
Der Unterschied liegt im Semikolon unter Windows und dem Doppelpunkt unter UNIX. DateistrukturEs muss ein Package mit dem Namen des Spielers angelegt werden, das außer einer Startklasse alle nötigen Dateien enthält.
Die Startklasse (als .java und .class) und das Package werden im "player"-Verzeichnis abgelegt.
In das Package gehören die java- und class-Dateien sowie die Dokumentation im pdf-Format.
Für alle java-Dateien im Package lautet die erste Zeile Ein Beispiel für eine Dateistruktur im "player"-Verzeichnis könnte wie folgt aussehen: MyPlayer.java MyPlayer.class myplayer/MyPlayer.java myplayer/MyPlayer.class myplayer/Hilfsklasse1.java myplayer/Hilfsklasse1.class myplayer/Hilfsklasse2.java myplayer/Hilfsklasse2.class myplayer/dokumentation.pdf Die Startklasse package player; public class MyPlayer extends player.myplayer.MyPlayer {} |