Hive inc.
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.
Hive inc.

Unser Forum zur Gestaltung des Projektes


Sie sind nicht verbunden. Loggen Sie sich ein oder registrieren Sie sich

To-do-Liste 2. Workshop

4 verfasser

Nach unten  Nachricht [Seite 1 von 1]

1To-do-Liste 2. Workshop Empty To-do-Liste 2. Workshop So Jun 09, 2013 11:33 pm

MichaelR



Alle Leute, die beim ersten Workshop noch nichts vorgestellt haben, sollten sich diese To-do-Liste anschauen und eine der Aufgaben übernehmen!

Das sind Theresa, Pauline, Kai, Tobias, Fenzki.

Theresa hat bereits eine Rahmen für eine RandomAI geschrieben, von der die richtige KI abgeleitet werden kann.

Entscheidet am besten heute (Montag) noch, was ihr übernehmt und lest euch in die Vorgaben ein (zu finden auf der CoMa Projekt-Seite: AI.zip, server.zip und Workshop2.zip!)

ToDo-Liste für 2. Workshop:

1. Das ClientHiveInterface ist von einer Klasse zu implementieren, und muss aus der GameFactory erzeugbar sein. Das ClientHiveInterface hat 4 neue Methoden mehr als das HiveInterface.

- getName gibt den Namen des Spiels auf dem Server zurück. Diesen Namen bekommt man bei der Erzeugung in der Game Factory.

- introduceLocal / moveLocal werden von der Netzwerk-Komponente aufgerufen, wenn ein anderer Client einen Zug gemacht hat, und der Server euch diesen mitteilt. Abhängig von eurer Implementierung können diese Methoden eventuell dasselbe machen wie die bereits vorhandenen. In jedem Fall bieten euch die unterschiedlichen Aufrufsarten eine Möglichkeit zu testen, woher der Aufruf kommt.

2. Die Replay-Funktionalität der GUI kann genutzt werden.

- Wenn ihr einen Server startet, protokolliert er alle Spiele und legt sie in einem replay-Ordner im Verzeichnis seiner JAR an.

- Die Replays kann die GUI öffnen (siehe Button in der Toolbar). Die GUI erzeugt dann ein Modell über die GameFactory (d.h. eine Instanz eurer Modellklasse) und fährt dann die Züge aus, die im Replay drin stehen. Möchtet ihr die "Zurück"-Tasten nutzen, muss euer Modell auch die Methoden für die Rücknahme implementiert haben.

3. Eine KI schreiben, die die gestellte KI in 80% der Spiele schlägt. Ihr habt hierfür ein paar Vorgaben, die ihr als Hilfestellung nehmen könnt, aber nicht müsst.

- RandomMain ist die Start-Klasse der KI, die ihr bekommen habt. Sie verarbeitet die Kommandozeilenparameter und erzeugt mittels der Methode

ai(InetAddress server, int port, String login, String password, String game, PlayerColor color)

eine KI, die sich mit dem angegebenen Server verbindet, und dem angegebenen Spiel beitritt bzw. es erzeugt. Prinzipiell könnt ihr einfach den Inhalt der ai-Methode ersetzen, um eure AI aufzurufen.

- Damit ihr die Nachrichten des Servers nicht selbst übersetzen müsst, steht euch ein ServerHandler (client.network.ServerHandler) zur Verfügung. Dieser wird mit IP und Port des Servers und einem ServerListener (client.network.ServerListener) erzeugt. Der Handler übersetzt dann die Nachrichten des Servers in Methodenaufrufe, d.h. er ruft bei dem übergebenen ServerListener die passenden Methoden auf.

- Die Methoden des ServerListeners müssen dazu von einer Klasse implementiert werden. Als Vorlage könnt ihr die Klasse HiveAI betrachten. Diese Klasse ist die Implementierung der gestellten KI des Server Interfaces, und ihr *könnt* die Methoden daraus als Vorlage verwenden, müsst aber nicht. Ihr dürft aber Code aus dieser Klasse kopieren oder modifizieren, wenn ihr möchtet. Interessant für euch sind dabei unter anderem die gameCreated, gameOver, joinGame, awaitLogin, startGame Methoden. Da ihr hier komplette Klasse aus unserer KI bekommt, enthält die HiveAI Klasse einige Dinge, die ihr nicht habt, wie z.B. das AIInterface. Das ist für euch an der Stelle aber nicht so interessant.

- Wenn eure KI einen Zug macht (oder ihr im Client an der GUI einen Zug macht), müsst ihr dies dem Server mitteilen. Dafür steht euch die Klasse client.network.ServerCommand zur Verfügung. Wenn ihr in der GameFactory eure Instanz eines ClientHiveInterface erzeugt, bekommt ihr ein ServerCommand von der GUI übergeben, was ihr nutzen könnt, um die Züge der GUI an den Server weiterzuleiten. Für die KI könnt ihr euch ein ServerCommand zu eurem ServerHandler erzeugen, in dem ihr new ServerCommand(<ServerHandler>) benutzt. Das ServerCommand erlaubt euch dann, Spielen beizutreten, starten, etc. und Züge an den Server zu senden.
[b]

2To-do-Liste 2. Workshop Empty Re: To-do-Liste 2. Workshop Mo Jun 10, 2013 4:32 pm

Fenzki



Ich würde auf jeden Fall mich um die SimpleAI kümmern, sprich die Zugbewertung, Zugauswahl etc.
Heißt, wir bräuchten auf jeden Fall noch jemanden, der die Anbindung an den Server übernimmt

3To-do-Liste 2. Workshop Empty Re: To-do-Liste 2. Workshop Mo Jun 10, 2013 10:15 pm

kaiheller



Das würden Pauline und ich gerne erledigen

4To-do-Liste 2. Workshop Empty Re: To-do-Liste 2. Workshop Di Jun 11, 2013 11:55 pm

kaiheller



Uns ist gerade aufgefallen, dass das ganze ja nicht so klar voneinander zu trennen ist, also Server und KI. 
Wir werden deshalb auch Methoden in die SimpleKI schreiben, nur dass du nicht nicht wunderst Wink

SimpleKI ist doch die Klasse in der du die KI schreibst oder?

5To-do-Liste 2. Workshop Empty Re: To-do-Liste 2. Workshop Mi Jun 12, 2013 2:04 am

Fenzki



jup.

6To-do-Liste 2. Workshop Empty Re: To-do-Liste 2. Workshop Mi Jun 12, 2013 4:23 am

tobi



okay fenzki soll ich dir dabei schon unter die arme greifen? Ich würde mich freitag und sonntag mal ransetzen. das wir das dann sonntag abend hochladen könne um alle der rücksprache zuentgehen Wink

7To-do-Liste 2. Workshop Empty Re: To-do-Liste 2. Workshop Mi Jun 12, 2013 5:44 am

Fenzki



Klingt nach nem guten Angebot. Ich arbeite jetzt schonmal an der KI etc. aber wenn du dir vll nochmal die moveAI/introduceAI und das wieder rückgängig machen davon anschaust, wäre mir sehr geholfen

8To-do-Liste 2. Workshop Empty Re: To-do-Liste 2. Workshop Do Jun 13, 2013 8:16 am

kaiheller



Es ist jetzt möglich sich mit einem Server verbinden und zwei Spieler gegeneinander spielen zu lassen.
Dazu könnt ihr einfach einen HiveServer starten und dann euch mal probeweise damit verbinden (einfach das Programm zwei Mal aufmachen. Die Einstellung der IP Adresse und des Ports stimmen schon).

Wenn jetzt die AI auch schon die Random AI schlägt, dann müssen wir nur noch die Replay-Funktionalität einbauen und dass sich die KI auch selbstständig als JAR mit einem Server verbinden kann ohne dabei eine GUI aufzumachen

9To-do-Liste 2. Workshop Empty Re: To-do-Liste 2. Workshop Fr Jun 14, 2013 9:33 pm

tobi



ok. Kai,Fenzki. Wenn ihr dennoch hilfe braucht sagt mir bescheid sonntag könnte ich mich nochmal ransetzen Wink

Gesponserte Inhalte



Nach oben  Nachricht [Seite 1 von 1]

Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten