私は、プレイヤーが次のターンにパンチする方向を予測する簡単なAIを作ることを学んでいます。左、右、前の3つの方向しかありません。Javascriptは前のデータに基づいて次の動きを予測します
現在、私はどの方向が最も穿孔されているかに基づいて次の動きを予測することができます。ここで私は、プレイヤーが、いくつかのコンボを持っている場合、例えば、右、右、左、右、右、前にパンチされたいか、今私のコード
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
}
です。このコンボを使用した数回後にaiがこのコンボパターンを認識するようにするために必要なこと。同じコンボはもはや動かず、プレイヤーはAIがまだ認識できなかった新しいコンボを見つける必要があります。
また、この種のプログラミングでは新しいです。私はアルゴリズムだけでなく、コードが必要です。そして、もし私がこのAIを開発したいのであれば、私は何を学ぶべきですか? 私はおそらくこれを行うことができるライブラリがたくさんあることは知っていますが、いくつかのライブラリを使用する前に基本的なことを最初に知りたいと思います。