Roboturnist

Aus KaroWiki
Zur Navigation springen Zur Suche springen

ist ein in der Entwicklung befindlicher Bot von Karaser.


Idee

Der Roboturnist ist anders als die anderen Bots. Er hat keinen Wegfindealgorithmus im klassischen Sinne, er sucht stattdessen in den anderen Spielen nach ähnlichen Situationen und wertet dann aus wie andere entschieden haben.

Die Idee dazu gibt es bestimmt schon relativ lange, aber nachdem sich niemand dazu bereit erklärt hat, die Idee umzusetzen, musste Karaser selber Hand anlegen.

Status

Stand: 11.12.18 Robo steigt jetzt auch automatisch bei Spielen auf neueren Karten aus, die er noch nicht fahren kann, da zu wenige beendete Spiele vorliegen. (Derzeit geht nix über MID=235) Stand: 10.05.18 Mittlerweile steigt Robo automatisch aus wenn er zu einem TC-Rennen oder ein Rennen auf einer Karte die auf der Blacklist steht eingeladen wird. Robo wird selbstständig, sodass er hoffentlich bald auszieht, der Umzug auf einen richtigen Server rückt näher (eventuell kilis toter Papagei).

Stand: 15.10.17 Der Roboturnist zieht gerade nicht und wird vermutlich auch noch ein paar Tage nicht ziehen. Grund dafür ist das Entfernen von Spaghettis, die sich in meinem Code verheddert haben...

Stand: 9.10.17 Heute hat der Roboturnist seine ersten Züge gemacht! Nachdem die Netzwerkkommunikation in großen Teilen von maks (KaBotte) bereitgestellt wurde, fährt er und ist sogar einladbar. Es ist noch eine frühe Version, die im Prinzip nicht viel mehr kann als das, was auch schon am 25.9. lief, aber das reicht aus, um schon ähnlich gut wie Slybotone zu fahren. Er ist aber nach wie vor aufgeschmissen, wenn er auf einen unbekannten Zug stößt. Derzeit läuft er nur testweise, das heißt nur wenn ich einen laufenden Rechner habe und ihn manuell starte.

Stand: 25.9.17 Der Bot ist noch längst nicht fertig. Er kann noch nicht ziehen, wer ihn einlädt, darf also 30 Tage auf die KaroMAMA warten. Derzeit kann er aber schon zu einer gegebenen Spielesituation auswerten, welcher Nachfolgezug wie häufig gezogen wurde.

ToDos

  • Gewichtung der einzelnen Spielsituationen
    • Einbeziehung der geblockten Felder
    • Einbeziehung von anderen Mitspielern
    • Einbeziehung von Sieg/Niederlage des Spielers
    • Einbeziehung der überfahrenen CPs (wichtig für CP-Rennen!)
  • Bei unbekannten Zügen:
    • nach ähnlichen Zügen (z.B. parallale Züge) suchen und diese auswerten
    • versuchen, auf eine bekannte Linie in der Nähe zu fahren
  • Bot auf Server auslagern und dauerhaft laufen lassen
  • Bei TWM4 mitfahren lassen
  • Weltherrschaft bzw. Karoherrschaft mit meinem Roboturnisten übernehmen (optional)

Probleme

  • Bei größeren Karten wie z.B. der CS-Kurve kann es schnell passieren, dass man in einer Spielsituation ist, die es so noch nie zuvor gab. Dann steht der natürlich doof da. Ideen das zu umgehen gibt es, die werden auch irgendwann umgesetzt. Bei vielbefahrenen kleineren Karten (1, 89, ...), sind solche Situationen aber ausgesprochen selten.
  • Bei manchen Karten mit CPs gibt es das Problem, dass man einen ähnlichen/gleichen Weg fahren kann obwohl man in seiner bisherigen Zuglinie unterschiedliche CPs überfahren hat. Dafür muss man bei der Gewichtung die einzelnen überfahrenen CPs mit den überfahrenen CPs des Roboturnisten abgleichen und (sehr) stark gewichten! Denn sonst kann es auf manchen Karten dazu kommen dass er beliebig lange Runden dreht (Siehe [1] oder [2]) oder er einfach schon ins Ziel fährt obwohl er noch nicht alle CPs eingesammelt hat. (z.B. [3] und [4])
  • Robo kann neue Karten nicht sofort fahren. Klar, es müssen erst mal genügend Rennen auf der Karte beendet sein, damit er irgendeine Datengrundlage hat. Aus diesem Grund bitte nicht zu ganz neuen Karten einladen, erst vllt. nach 1-2 Monaten. Je mehr Spiele auf der Karte auch beendet werden, desto besser und sicherer fährt er.

Karten-Blacklist

Karten die Robo nicht sicher/sinnvoll fahren kann und daher sofort aussteigt:

  • mit CPs an: 83, 92, 94, 96, 102, 108, 121, 127, 128, 138, 145, 155, 164, 166, 167, 173, 174, 182, 190, 205, 207, 208, 222, 227, 228, 233, 234
  • mit CPs aus: 92, 94, 127, 145, 167, 173, 205, 227, 233, 234