J'apprends à faire un simple IA pour prédire la direction que le joueur va frapper au prochain tour. il n'y a que 3 directions, gauche, droite et avant.Javascript prédisait le prochain mouvement en se basant sur les données précédentes
Actuellement, je peux seulement prédire le prochain mouvement en fonction de la direction la plus perforée. Voici mon 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
}
Maintenant, ce que je veux, si le joueur a une combo, par exemple coup de poing droite, droite, gauche, droite, droite, avant. Ce que je dois faire pour que le IA reconnaisse ce combo après quelques fois que le joueur a utilisé ce combo. Alors que le même combo ne fonctionnera plus et que le joueur doit trouver un nouveau combo que l'ai n'a pas encore reconnu.
Aussi je suis nouveau dans ce genre de programmation. J'ai besoin de l'algorithme, pas seulement du code. Et que devrais-je apprendre d'autre si je veux développer cette IA? Je sais qu'il y a peut-être beaucoup de bibliothèques qui peuvent faire cela, mais je veux d'abord connaître la base avant d'utiliser une librairie.