Nun ist es soweit - die KI wird eingebaut!
Hier möchte ich den Verlauf für die Interessierten von euch ausführen.
Und es soll eine Einladung zur Diskussion sein...
Wie an anderer Stelle bereits erwähnt, verwende ich ein Neuronales Netzwerk mit finiten Kombinationen (es existieren also nur jene Verbindungen, die auch spielbar sind [Münze auf Münze ist z.B: nicht spielbar])
Zudem ergeben sich vorbestimmte Reihenfolgen oder parallele Spielzüge:
- eine Handkarte muss erst ausgespielt werden (und führt dann ggfls. eine Heldenfunktion aus)
- die Reihenfolge von zusätzlichen Waffen/Rüstungen/Münzen vor der Verwendung einer Karte/Basis spielen eine Rolle (Kostenermittlung) können aber beliebig kombiniert werden
Hier ist mal der Entwurf für das Netzwerk: KIbaum.svg
Er ist bzgl. der (Multinomialkoeffizienten) Permutation aller relevanten Objekte (Karten/Zusätze) reduziert.
Man stelle sich diesen Baum also an den entsprechenden Verzweigungen ver-N-facht vor, abhängig von der im Spiel (oder dem Inventar) befindlichen Objekte.
Hier werde ich Rekursionen über alle relevanten Objekte verwenden.
Am Ende jedes Zweiges befindet sich dann die entsprechende Bewertungsfunktion (für die GUV*1 der beiden 'kämpfenden' Objekte
Das Neuronale Netzt ist also RIESIG.
Die Gefahr besteht, dass bei maximalen Ausprägung ein Laufzeitproblem entsteht.
Um das zu verhindern, werde ich eine Abbruchtiefe hinzufügen, um ggfls nicht alle Verbindungen zu bewerten.
Jeder Zweig wird mit einer GUV beendet und daraus eine Gewichtung für die Backpropagation (rückgerichtete Knotengewichtung) ermittelt, welcher jeden Zweig für die Angriffs- oder Verteidigungsstrategie priorisiert oder dämpft.
Im Gegensatz zur Ansatz mit einem Minmax-Algorithmus muss ich mir so nicht für jeden Spielzug die Endwerte zu jeder Karte merken, denn....
Wenn alle Zugfolgen bewertet sind, findet das NN dann die optimale Karte selbständig, über die Gewichtungen - für EINE OPTIMALE AKTION (Karte oder Basis).
Dies wird dann solange wiederholt, bis keine sinnvolle Aktion mehr verbleibt und der Spielzug beendet wird.
Damit jeder Stamm eine individuelle Prägung bekommt (und somit in den Kämpfen unterschiedliche Strategien entstehen) werde ich die Gewichtungsfunktionen je Stamm individuell gewichten (manch ein Stamm wird agressiver sein als andere und/oder z.B: auch Basisangriffe vor Kartenangriffen bevorzugen, ...)
*1) GUV = Gewinn- und Verlustrechnung - was kostet ein Angriff und welchen Erfolg(Schaden) bringt er?