1 / 18

Von Tom Wehnert & Konstantin Preißer

Von Tom Wehnert & Konstantin Preißer. 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. Spielfeld.

mandell
Download Presentation

Von Tom Wehnert & Konstantin Preißer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Von Tom Wehnert & Konstantin Preißer

  2. 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 0 1 2 3 4 5 x 0 1 2 3 y 4 3 2 1 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: http://preisser.dynalias.org/dere1/anaconda/highscore.asp?anz=10gibt 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> AnacondaTomWehnertKonstantinPreisserReplayDatei7cc1d94f97f3e185350b8f137c33f86c22F38,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

More Related