WPM Künstliche Intelligenz Projekt: “Schiffe-Versenken”

Slides:



Advertisements
Ähnliche Präsentationen
Prolog Implementierung Spielregeln
Advertisements

Freie Universität Berlin Institut für Informatik
Berliner Fußball-Verband e.V. Spielfortsetzung ohne Vergehen
Steigung m berechnen Man kann die Steigung auch berechnen,
TelegraphCQ Manuel Hertlein.
WS 03/041 Algorithmentheorie 01 - Einleitung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Software-Engineering II Eingebettete Systeme, Softwarequalität, Projektmanagement Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt.
:33 Architektur Moderner Internet Applikationen – Prolog Copyright ©2003 Christian Donner. Alle Rechte vorbehalten. Architektur Moderner.
Einführung in Cocoa Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller, SS 2012 Do, Uhr, Archäologie-Pool Referent: Nelson.
Bastian Cramer, Universität Paderborn Entwurfsmuster für Webanwendungen Projektgruppe: Generierung von Webanwendungen aus visuellen Spezifikationen.
Client für XML Application Platform Siemens OpenStage
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Spielbäume Richard Göbel.
Komponentenbasierter Taschenrechner mit CORBA
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
Geometrisches Divide and Conquer
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung Foliendesign: cand. geod. Jörg Steinrücken.
Technische Informatik I
Schiffe versenken mit Günter, Jens und Martin
Ein Referat von German Tristan
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
Folie 1 Christian Pfeffer Carsten Walther Fernstudium Informatik Matrikel LABORPRAKTIKUM- SOMMERSEMESTER 2005 Umsetzung von Pattern Muster: DECORATOR.
07-GraphischeObjekte Graphische Objekte in EMMA301Paint.
Theorie und Praxis geometrischer Algorithmen
Datenbasisschema Wegen der Freizügigkeit des Modells: Keine a-priori Vereinbarung eines Schemas Hingegen: a-posteriori Extraktion eines Schemas: Gibt es.
ANALYSE UND KONZEPTION VON TUPLE SPACES IM HINBLICK AUF SKALIERBARKEIT Philipp Obreiter Telecooperation Office (TecO) Universitaet Karlsruhe Betreuer:
Punktbeschriftung mit vier Rechtecken gleicher Höhe (Anzahlmaximierung) Julia Löcherbach.
Diplomverteidigung Konzeption und Realisierung der Server-Komponente für ein P2P-File-Sharing-System, bei dem die User am Umsatz beteiligt sind Vortragender: Holger.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Client Architecture Data Model GUI KI Socket Connection.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Test Summary: m ein Fehler pro Tag m Test First m Funktionstests.
FlexChess HTWG Konstanz - Rolf Englputzeder (TI7) Feb 2008.
Pervasive Games fürs Dorf Bachelor-Seminar SS07 M. Mehdi Moniri Betreuer: Michael Schmitz.
Software Engineering 1 6. Übung
Entwicklung einer GUI sowie einer KI im Rahmen der ICGE
Chomp Enumerative Combinatoric Algorithms
von Bernd Adler & Stefan Hamann
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 8 SS 2000 Punkt-in-Polygon-Verfahren II (Trapezkarte)
Gruppe: Gewinnt Überblick 1.0 (Martin Kapfhammer)
Projektpräsentation von André Käckenmester, Marc Brünig, Jörg Straube,
Cs104 Programmieren II / cs108 Programmier-Projekt Präsentation Meilenstein 3 Frühjahrsemester 2011 Gruppenname (Gruppe Nr. x) Name 1 Name 2 Name 3 Name.
Regel 11 Abseits.
Regel 15 Einwurf.
Die Ausbildung zum Schiedsrichter - Ausgabe 2013 / 2014
Die Ausbildung zum Schiedsrichter - Ausgabe 2013 / 2014 Bernd Domurat - DFB-Kompetenzteam.
Beschreiben Sie eine Web Interaktion mittels Java Applets.
Komponenten eines Informationssystems
Informatik in der Keimgasse
cs108 Programmier-Projekt Präsentation Meilenstein 3
Die Ausbildung zum Schiedsrichter - Ausgabe 2012 / 2013 Bernd Domurat - DFB-Kompetenzteam.
Hacking InfoPoint Jörg Wüthrich Infopoint - Hacking - Jörg Wüthrich 2/26 Inhalte Rund um das Thema Hacking Angriffs-Techniken Session.
Welche Waffen hat ein Ritter?
Sie spielen gerne Viergewinnt ? - aber haben keine Gegner mehr ? Wir haben die Lösung !!!
MultimediaprogrammierungSlide 1 LFE Medieninformatik Multimediaprogrammierung SS 2006 Team: Andreas Kräss Simon Acker Johannes Vetter Andreas Rogge-Solti.
Rafael, Florian, Patrick
Parallelwinkel im Überblick
Parallelwinkel im Detail
Richtlinien des LFV Mecklenburg-Vorpommern e. V
Regel 14 Strafstoß.
2. Kommunikation und Synchronisation von Prozessen 2
Fußball.
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Balter Martin Kuschny Daniel Tscholl Manuel 1. Agenda Was ist KuBaTsch? MVC Model View Netzwerk Kollisionssystem Rundensystem 2.
Ilmenau, den * * Torsten Kunze
Ausbildung zum Volleyball-Schiedsrichter
Parallel Programming OpenMP und JOMP
Laborpraktikum Umsetzung von Pattern SS 05 Prof. Paul, Dipl.-Inf. Fröhlich, Dipl.-Inf. Linke {paul | iti.cs.uni-magdeburg.de
Einführung In der nachfolgende Präsentation soll das Stellungsspiel bei der Feldabwehr des gegnerischen Angriffs erläutert werden.
© 2008 TravelTainment The Amadeus Leisure Group Webanwendungen mit Java - HttpServlets 17.Dezember 2010 Sebastian Olscher Erstprüfer: Hon.-Prof. Dr. H.
Regel 14 Strafstoß.
Test Summary: ein Fehler pro Tag Test First
 Präsentation transkript:

WPM Künstliche Intelligenz Projekt: “Schiffe-Versenken” Victor Apostel, Stefan Bogdanski und Sibille Ritter 19.01.2011

Agenda Spielregeln Kommunikation Clientdesign Prolog Implementierung Demo: Spieler gg. KI Demo: KI gg. KI Ausblick

Spielregeln Spielfeld: 10x10 Horizontale / Vertikale Schiffe 1x 5er, 1x 4er, 2x 3er, 1x 2er Schiffe dürfen nicht aneinander stoßen Abwechselndes ‘beschießen’ des Gegners

Kommunikation Client-Server Architektur Server: koordiniert Partien kann beliebig viele Spiele parallel ausführen dient als Nachrichtenverteiler Serverimplementierung orientierte sich am Tic Tac Toe Beispiel und wurde in Java implementiert Sobald sich zwei Spieler verbunden haben, wird ein eigener Thread erzeugt, der das Spiel koordiniert Beliebige Kombinationen möglich: Prolog vs. Prolog Mensch vs. Mensch Prolog vs. Mensch Koordiniert zudem, wer als erstes beginnen soll und erzeugt ein Startsignal, sobald das Spiel seitens des Servers initialisiert wurde.

Kommunikation Client: implementiert eigentliche Spiellogik zwei Varianten computergesteue rt (Prolog) HMI (Java)

Kommunikation Nachrichtenaustausch auf Textbasis Format (OPCODE, [Param 1, Param 2, Param 3]). OPCODE Angriff: (ATTACK, [X, Y]). Antwort: (ATTACKRESPONSE, [X, Y, STATE]). ... Nachrichtenformat ist Prologorientiert Zu erkennen an Parameterliste. Die eckigen Klammern entsprechen der Prologsyntax Ebenso der Punkt am Ende des Kommandos Die Parameter und Anzahl der Parameter ist vom OPCODE abhängig. Die wichtigsten Nachrichten sind ATTACK und ATTACKRESPONSE Die Antwort auf einen Angriff enthält einen STATE Parameter. Dieser sagt aus, ob Wasser, oder ein Schiff getroffen wurde. Ebenso gibts aber auch Meldungen wie „Schiff wurde zerstört“ oder „letztes Schiff wurde zerstört“

Clientdesign Client setzt primär Zustandsdiagramm um Zustandsänderungen durch Nachrichten Innerhalb von RUNNING Sub-Zustandsdiagramm Die Kommunikation seitens des Clients kann auch als Zustandsdiagramm abgebildet werden Zustandsdiagramm unabhängig von der Implementierung und somit allgemeingültig Die OPCODEs und STATEs der letzten Folie dienen als Zustandsübergänge Primär gibt es: INITIALIZATION: Schiffe platzieren RUNNING: Eigentliches Spielgeschehen WON/LOST: Spielende Innerhalb von RUNNING noch Subzustände

Clientdesign Primäre Zustände ATTACK DEFENCE Reihenfolge der Nachrichten Alternierend und zum Gegenspieler entgegengesetzt Primär ATTACK und DEFENCE Unterscheiden sich maßgeblich durch die erwartete Reihenfolge des Nachrichtenaustauschs ATTACK: Angriff senden - Antwort empfangen DEFENCE: Angriff empfangen - Antwort senden Nach jeder gesendeten Antwort wechselt der interne Status Falls der STATE „letztes Schiff zerstört“ versendet wurde, beendet sich der RUNNING Zustand

Clientdesign Java-Client benutzt Entwurfsmuster Model-View-Controller Oberserver-Pattern Die Zustandsdiagramme wurden unter Anderem in Form eines Java Clients umgesetzt Verwendet zwei Entwurfsmuster Die View besteht aus: Spielfelder durch 2x 10x10 große Felder abgebildet Links interaktiv, Rechts nur passiv Zustand des Spielfelds durch Farben symbolisiert. Rot: Getroffen, Blau: Wasser, dunkles Grau: Versenkt, helles Grau: noch unbekannt immer wenn der hinterliegende Controller eine Änderung des Spielfelds vornimmt, wird die GUI automatisch aktualisiert Die Prologseitige Realisierung des Clients stellt euch nun Stefan vor.

Prolog Implementierung Spielregeln “Schiffe müssen Horizontal (oder Vertikal) stehen” Schiffe dürfen einander nicht berühren, aber diagonal versetzt stehen. connectedHV(S1,P1,X1,Y1,S2,P2,X2,Y2):- S1 == S2, P1 \== P2, X1-X2 =:= P1-P2, Y1 == Y2, !.distance(S1,S2,X1,Y1,X2,Y2):- S1 \== S2, ((X1 == X2, abs(Y1-Y2)>1); (X1 \== X2, abs(Y1-Y2)>=1)), !.

Prolog Implementierung Platzierung Rekursiv Template der Schiffe Liste Ships mit zufälliger Reihenfolge Liste Positions mit konkreter Positionierung

Prolog Implementierung Strategie Es werden zufällige Koordinaten attackiert, bis… … ein Treffer gelandet wird Hinzufügen der Nachbarn in die Openlist

Prolog Implementierung Strategie Weitere Angriffe auf die Koordinaten in der Openlist

Prolog Implementierung Strategie Wird ein weiterer Treffer gelandet: Kann die Orientierung des Schiffes bestimmt werden Daher können Koordinaten aus der Openlist ausgeschlossen werden

Prolog Implementierung Strategie Weitere Angriffe entlang der Orientierung, solange bis „Schiff versenkt“

Demo Spieler gg. KI

Demo KI gg. KI

Ausblick Zufälliges Angreifen durch strukturiertes Vorgehen ersetzen Implementierung eines lernenden Spielers (Analyse der gegnerischen Angriffe und Schiffspositionen)