0
我正在學習做一個簡單的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,還有什麼我應該學習的? 我知道也許有很多圖書館可以做到這一點,但我想在使用一些圖書館之前知道基本知識。