Ich lerne, um eine einfache ai die Richtung vorherzusagen, die der Spieler nächste Runde schlagen wird. es gibt nur 3 Richtungen, links, rechts und vorne.Javascript vorherzusagen, nächsten Schritt basierend auf vorherigen Daten
Zur Zeit kann ich nur die nächste Bewegung vorhersagen, je nachdem, welche Richtung am meisten gelocht ist. Hier ist mein Code
function Actor(name) {
this.name = name
}
var r = 'right'
var l = 'left'
var f = 'front'
Actor.prototype.punch = function(direct, target) {
if (this == player) {
if (!target) target = enemy
console.log(this.name + ' hit ' + target.name + ' on ' + direct)
player_log.push(direct)
console.log(target.name + ' block to the ' + mode(player_log))
}
console.log(this.name + ' hit ' + target.name + ' on ' + direct)
}
var player = new Actor('Player')
var enemy = new Actor('Enemy')
var player_log = []
function mode(arr) {
if (arr.length == 0) return null
var map = {}
var max = 1
var maxEl = arr[0]
for (var i = 0; i < arr.length; i++) {
var el = arr[i]
if (!map[el]) {
map[el] = 1
} else {
map[el]++
}
if (map[el] > max) {
max = map[el]
maxEl = el
}
}
return maxEl
}
Nun, was ich will, ist, wenn der Spieler eine Combo hat, zum Beispiel Punch rechts, rechts, links, rechts, rechts, vorne. Was ich tun muss, damit der ai dieses Combo-Muster erkennt, nachdem der Spieler einige Male diese Combo benutzt hat. Damit die gleiche Combo nicht mehr funktioniert und der Spieler eine neue Combo finden muss, die der ai noch nicht erkannt hat.
Auch ich bin neu in dieser Art der Programmierung. Ich brauche den Algorithmus, nicht nur den Code. Und was sollte ich sonst noch lernen, wenn ich dieses Ai entwickeln möchte? Ich weiß, vielleicht gibt es eine Menge von Bibliotheken, die das tun können, aber ich möchte zuerst die Grundlagen kennen, bevor ich eine Bibliothek verwende.