KaBotte: Unterschied zwischen den Versionen

Aus KaroWiki
Zur Navigation springen Zur Suche springen
K
Zeile 13: Zeile 13:
 
Pfadberechnung: Breitensuche (Wege zwischen CPs), Tiefensuche (Suche des optimalen Pfades durch alle CPs zum Ziel)
 
Pfadberechnung: Breitensuche (Wege zwischen CPs), Tiefensuche (Suche des optimalen Pfades durch alle CPs zum Ziel)
  
Serverkommunikation: API für Spieldaten, GET/POST für Interaktion mit Karopapier.de, Websockets für Dran-Benachrichtigung
+
Serverkommunikation: API(v2/v1) für Spieldaten, GET/POST für Interaktion mit Karopapier.de, Websockets für Dran-Benachrichtigung
  
== aktueller Stand ==
+
== Features ==
  
Zur Zeit ist KaBotte in einer intensiven Testphase (läuft nur tagsüber) mit meinem Arbeitskollegen, die vollkommen freiwillig als Gegner für KaBotte herhalten müssen.
+
* Berechnung der Ideallinie vom aktuellen Vektor aus
 
+
* beherrscht Checkpoints
Der Bot beherrscht CPs (integraler Bestandteil) und TCs (kann zu sehr langer Laufzeit bei "großem" ZZZ führen).
+
* Richtungsmodus bei Rundkursen (Zieleinfahrt wird auf einen Winkelbereich eingeschränkt)
Aus den möglichen Zügen wird immer einer gewählt, der zu einer minimalen Pfadlänge führt.
+
* selbständiges Erkennen von Rundkursen
 
+
* Taktische Crashs (TC)
2016-12-11: Ein Bug mit dem Richtungsmodus wurde behoben (Information, ob es sich um einen Rundkurs, muss manuell erfasst werden)
+
* Nachtrennen (neue Maps werden gefahren, aber KaBotte lernt mit jedem gefahrenen Rennen)
 
+
* Websocket-Unterstützung
2016-12-14: Rudimentäre GUI zur besseren Erfassung von Infos (z.B. Rundkurs)
 
 
 
2016-12-16: Implementierung eines Algorithmus zur Lösung des [https://de.wikipedia.org/wiki/Problem_des_Handlungsreisenden TSP] bei großen Karten
 
 
 
2017-01-03: Cachen von nicht möglichen Zügen -> immenser SpeedUp bei Karten mit vielen CPs (einzige Ausnahme: Map [http://www.karopapier.de/mappreview.php?MID=167&pixel=4&karoborder=1 167]
 
 
 
2017-01-04: Defensive Strategie zur Zugwahl, um nicht zu Crashs gezwungen zu werden (erste Ergebnisse sind nicht so viel versprechend, wie erwartet)
 
 
 
2017-01-05: Ausbau des Multithreadings: Alle Einzelbestandteile werden in eizelnen Threads ausgeführt
 
 
 
2017-01-06: Websocket Unterstützung. KaBotte erhält die gleichen Nachrichten wie im Chat 2.1 und reagiert sofort darauf. Direkte Abfragen der offenen Spiele werden nur noch als Backup (nach 10 Min.) ausgeführt, falls der Websocket fehlschlägt.
 
 
 
2017-01-07: Bugfix in der Zugwahl-Strategie
 
  
 
== ToDos ==
 
== ToDos ==
  
Caching bereits berechneter Pfade pro Spiel (im Augenblick wird jeder Zug komplett neu berechnet)
+
* Verbesserung Heuristik zur Bestimmung des nächsten Zuges
 
+
* Benchmark einbauen
Heuristik zur Bestimmung des nächsten Zuges bzgl. Position der Gegner
+
* Automatisches Aussteigen
 
 
Tests, ob KaBotte auf einem Android-Handy (wahrscheinlich deutlich Leistungsfähiger als das angedachte NAS) lauffähig ist
 
 
 
Automatisches Aussteigen bei nicht unterstützten Maps oder Richtungsmodi-Kombinationen
 
  
 
== Problematische Karten ==
 
== Problematische Karten ==
  
Nr. [http://www.karopapier.de/mappreview.php?MID=117&pixel=4&karoborder=1 117]: ohne TCs
+
* Nr. [http://www.karopapier.de/mappreview.php?MID=117&pixel=4&karoborder=1 117]: Let's rock (ohne TC)
 
+
* Nr. [http://www.karopapier.de/mappreview.php?MID=167&pixel=4&karoborder=1 167]: Rostock
Nr. [http://www.karopapier.de/mappreview.php?MID=167&pixel=4&karoborder=1 167]: die Größe des Suchbaums (9 Fakultät)
 
  
 
[[Kategorie:Bot]]
 
[[Kategorie:Bot]]

Version vom 14. Januar 2017, 18:45 Uhr

ist ein, seit Ende Oktober 2016 in Entwicklung befindlicher, Bot von maks. Erklärtes Ziel von KaBotte ist es, RE-Rennen fahren zu können (das kann noch ein wenig dauern) und performant genug zu sein, um auf einem Synology-NAS (DS213j) zu laufen.

Durch die Websocket Unterstützung kann man mit KaBoote als Gegner sehr schnelle Rennen fahren (falls die Map nicht zu kompliziert ist, zieht KaBotte innerhalb von 1-2 Sekunden). Die kann besonders für Neulinge interessant sein, um eine paar offene Spiele zu haben.

Bei Problemen, bitte ein direktes Telegramm am maks

Technische Details

Programmiersprache: Java

Architektur: Multi-Threaded (GUI, Server-Kommunikation, Pfadberechnung)

Pfadberechnung: Breitensuche (Wege zwischen CPs), Tiefensuche (Suche des optimalen Pfades durch alle CPs zum Ziel)

Serverkommunikation: API(v2/v1) für Spieldaten, GET/POST für Interaktion mit Karopapier.de, Websockets für Dran-Benachrichtigung

Features

  • Berechnung der Ideallinie vom aktuellen Vektor aus
  • beherrscht Checkpoints
  • Richtungsmodus bei Rundkursen (Zieleinfahrt wird auf einen Winkelbereich eingeschränkt)
  • selbständiges Erkennen von Rundkursen
  • Taktische Crashs (TC)
  • Nachtrennen (neue Maps werden gefahren, aber KaBotte lernt mit jedem gefahrenen Rennen)
  • Websocket-Unterstützung

ToDos

  • Verbesserung Heuristik zur Bestimmung des nächsten Zuges
  • Benchmark einbauen
  • Automatisches Aussteigen

Problematische Karten

  • Nr. 117: Let's rock (ohne TC)
  • Nr. 167: Rostock