Soweit ich das rauslesen kann wär der glaub ich schon das richtige für dich. Du willst ja wenn ich das jetzt richtig verstehe Punkte für einzelne Aktionen vergeben, von denen dann ausgewählt wird welche Aktion er dann ausführen möchte. Aber du musst dann ja noch herausfinden welche Aktion jetzt die höchsten Punkte hat und das macht der Minimax-Algorithmus dann für dich. Der Algorithmus würde ja erst aufwendig werden wenn du jetzt deutlich mehr Optionen hast zwischen die der Computer auswählen müsste, aber was ich so rauslese hast du ja dann nur 3 Möglichkeiten, geradeaus oder links, rechts abbiegen.
Und um dir vllt etwas überblick über den Zeitaufwand zu geben, ich bastel an einem Rundenstrategiespiel, wobei die Einheiten sich nicht bewegen sie deshalb immer eine feste Positionen haben. Um meiner KI sagen zu können wenn sie angreifen sollen, muss diese durch ca. 3000 Zeilen Code durch, einmal für die Einheiten der Spieler und dann nochmal für die gegnerischen Einheiten. Im Release Modus, braucht das Programm für 500 Runden, mit jeweils 6000 Zeilen Code nichtmal 5 Sekunden.
Das könnte also auch flüssig mit 100 Frames laufen.
Dabei denke ich mal das dein Code der KI deutlich kürzer sein wird.
Ich mach das auch mit einer Punktevergabe, zuerst Speichere ich die Daten der 21 Einheiten des Gegners in Vectoren ab sodass ich später einfach darauf zugreifen kann und Ordne sie schon nach Stufen. Dann schaue ich für jede Einheit nach wen sie überhaupt angreifen darf, nach den Regeln die ich aufgestellt habe, was sicherlich die hälfte des Codes darstellt. Um anschließend für die Angriffsmöglichkeiten die Punkte zu ermitteln und anschließend die Einheit anzugreifen die die höchste Punktzahl erreicht hat. Das mach ich momentan noch mit einer for Schleife wo ich einfach jeden Wert überprüfe bis der höchste über geblieben ist. An dem Punkt würde sich für mich im Grunde auch der Minimax-Algorithmus rentieren, kannte den bis jetzt auch nicht, hab einfach so für mich losprogrammiert.
Mit den Minimax-Algorithmus reduzierst du halt die Vergleiche um auf die höchste Punktzahl deiner Auswahlmöglichkeiten zu kommen.
Also wie du schon geschrieben hast, hat gerade ausfahren jetzt z.b. schon Standard mäßig einen höheren Wert. Wenn jetzt z.B. vor dir ein Hindernis festgestellt werden sollte, kannst du nach den Regeln die du dir aufstellt ja dann z.b. mehr Punte für abbiegen rechts erteilen. Wordurch dann diese Aktion ausgewählt wird. Mit der Punktvergabe musst dich halt einfach etwas Spielen, also am besten schon eine Strecke haben wo du das auch immer etwas Testen kannst, wäre doch sehr von Vorteil denke ich. So hab ich das bei mir auch immer gemacht, immer zwischendurch mal geschaut wie wirkt sich das jetzt auf die KI aus, um dann auch gleich sehen zu können wo man evtl. noch nachbessern sollte, weil sie sich noch nicht so verhält wie man es gerne hätte.
Hoffe ich hab nichts falsch verstanden und es hilft dir etwas weiter.