Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Von Tom Wehnert & Konstantin Preißer

Ähnliche Präsentationen


Präsentation zum Thema: "Von Tom Wehnert & Konstantin Preißer"—  Präsentation transkript:

1 Von Tom Wehnert & Konstantin Preißer

2 Ein-/Zweispielermodus Künstliche Intelligenz Internet-Highscoreliste
Features: 4 Schwierigkeitsgrade Ein-/Zweispielermodus Künstliche Intelligenz Internet-Highscoreliste Replay-Funktion Musik über MIDI-Schnittstelle (noch in Arbeit) Von Tom Wehnert & Konstantin Preißer

3 Spielfeld Unterteilung in 40x30 Quadrate
Richtungsänderung mit linker und rechter Pfeiltaste Speicherung der Schlangenposition in 2-dim. Feld Je nach gewähltem Schwierigkeitsgrad Intervall von 400 ms, 200 ms, 100 ms oder 60 ms x 1 2 3 y 4 feld[3][2] = 2

4 Künstliche Intelligenz
KI über Backtracking-Algorithmus (Tiefensuche) (x/y) Links Rechts Oben Unten (x-1/y) (x+1/y) (x/y-1) (x/y+1)

5 Künstliche Intelligenz
KI über Backtracking-Algorithmus (Tiefensuche) (x/y) Links (x/y)

6 Künstliche Intelligenz
KI über Backtracking-Algorithmus (Tiefensuche) (x/y) Links (x/y) (x-1/y) Links

7 Künstliche Intelligenz
KI über Backtracking-Algorithmus (Tiefensuche) (x/y) Links (x/y) (x-1/y) Links (x-2/y)

8 Künstliche Intelligenz
KI über Backtracking-Algorithmus (Tiefensuche) (x/y) Links (x/y) (x-1/y) Links Rechts (x-2/y)

9 Künstliche Intelligenz
KI über Backtracking-Algorithmus (Tiefensuche) (x/y) Links (x/y) (x-1/y) Links Rechts (x-2/y) (x/y)

10 Künstliche Intelligenz
KI über Backtracking-Algorithmus (Tiefensuche) (x/y) Links (x/y) (x-1/y) Links Oben Rechts (x-2/y) (x/y)

11 Künstliche Intelligenz
KI über Backtracking-Algorithmus (Tiefensuche) (x/y) Links (x/y) (x-1/y) Links Oben Rechts (x-2/y) (x-1/y-1) (x/y) Links

12 Künstliche Intelligenz
KI über Backtracking-Algorithmus (Tiefensuche) (x/y) Links (x/y) (x-1/y) Links Oben Rechts (x-2/y) (x-1/y-1) (x/y) Links (x-2/y-1) Links

13 Künstliche Intelligenz
KI über Backtracking-Algorithmus (Tiefensuche) (x/y) Links (x/y) (x-1/y) Links Oben Rechts (x-2/y) (x-1/y-1) (x/y) Links (x-2/y-1) Links (x-3/y-1) Links usw.

14 Künstliche Intelligenz
KI über Backtracking-Algorithmus (Tiefensuche) Jedoch: Exponentielle Laufzeit O(4x·y) bei immer gleicher Reihenfolge der Pfade (Links – Rechts – Oben – Unten) Deshalb: Pfade werden in Reihenfolge durchlaufen, die am ehesten zum „Futter“ führt Bei zunehmender Schlangenlänge (ca. 150) kann KI nicht immer schnell einen Weg finden; Programm würde „hängenbleiben“. Deshalb: Multithreading KI-Thread bekommt Zeit für Wegsuche bis zum nächsten Spieltakt. Wenn bis dahin kein Weg gefunden wurde, wird Wegsuche abgebrochen und mit aktueller Richtung fortgefahren, danach wird Wegsuche erneut gestartet

15 Internet-Highscoreliste
Programm verbindet sich über HTTP zu IIS-Webserver, auf dem eine ASP-Datei (mit VBScript bzw. JavaScript) mit einer Access-Datenbank interagiert ASP-Script kommuniziert mit Datenbank und schreibt Daten im Textformat in die Ausgabe bzw. erstellt neuen Eintrag Programm liest die Ausgabe wie Textdatei URL: gibt die Top 10 der Highscore zeilenweise aus Internetverbindung, HTTP MS Access- Datenbank ASP-Seite Programm Webserver

16 Replay-Funktion Aufzeichnung der Richtungsänderungen und Futterpositionen in Textdatei Darstellung des Dateiformats in BNF (Backus-Naur-Form): <Datei> ::= <DateiKennzeichnung> <Prüfsumme> <Diffy> <AnzahlSpieler> <Food> [{<TaktContainer>}] <Diffy> ::= '1' | '2' | '3' | '4' <AnzahlSpieler> ::= '1' | '2' <TaktContainer> ::= '!' <Takt> <Takt> ::= [<R1>] [<R2>] [<Food>] <R1> ::= '1' <Richtung> <R2> ::= '2' <Richtung> <Richtung> ::= '1' | '2' | '3' | '4' <Food> ::= 'F' {<Ziffer>} ',' {<Ziffer>} '?' <Ziffer> ::= '0' ... '9' DateiKennzeichnung ::= 'AnacondaTomWehnertKonstantinPreisserReplayDatei' <Prüfsumme> ::= <Hex-Zahl> x 32 <Hex-Zahl> ::= '0' | .. | '9' | 'a' | ... | 'f'

17 Replay-Funktion Aufzeichnung der Richtungsänderungen und Futterpositionen in Textdatei Beispiel: <Prüfsumme> (MD5) <DateiKennzeichnung> AnacondaTomWehnertKonstantinPreisserReplayDatei7cc1d94f97f3e185350b8f137c33f86c 22F38,2?!1323!!!!12!!!!!!!!!!!!22!23!22!23!1322F2,19?!24!11!21!!!!!!!!!!!!!!!! <R1><R2> <Food> <Food> <TaktContainer> (kann Elemente <R1>, <R2>, <Food> enthalten) <AnzahlSpieler> <Diffy> (Schwierigkeit)

18 Musik über MIDI MIDI: Musical Instrument Digital Interface
Beschreibt Standard zur dynamischen Erzeugung von Tönen MIDI-Interface in Java integriert MIDI: Es werden nur die zu erzeugenden Töne gespeichert (Tonhöhe, Dauer, Instrument usw.); Audiosignal wird zur Laufzeit von Synthesizer erzeugt MIDI: 16 Kanäle (Channel), jeder davon kann eines von 127 Instrumenten spielen Vorteil: Geringe Dateigröße, dynamische Änderungen (Tempo, Tonhöhe usw.) Nachteil: Je nach Synthesizer unterschiedlicher Klang; keine Wiedergabe von Geräuchen, Stimmen usw. möglich) Sampled Audio (Wave, MP3, …): Tonsignal wird abgetastet (z. B. 44,1 kHz) und Lautstärke wird gespeichert (Auflösung: 16 Bit) Vorteil: Exakte Reproduktion des Audiosignals Nachteil: Hohe Dateigröße


Herunterladen ppt "Von Tom Wehnert & Konstantin Preißer"

Ähnliche Präsentationen


Google-Anzeigen