Find an possible moves in Backgammon games.
我写了一个蛮力方法,可以检测可能的动作。
在回合玩家检查器中添加了一个骰子值
// let possibleMoves: number[];
let possibleMoves = [];
let possibleMoveDice =[];
for(let dice of dices){
for(let entry of p1){
let num = entry + dice;
if(num < 24){
possibleMoves.push(num);
}
}
possibleMoveDice.push(possibleMoves);
//Make possible move blank
possibleMoves=[];
}
如果对手检查者将此可能的行动与对手检查者进行比较 如果排除了不止一个这样的可能的举动。
//Check available move with second checker
for (let checker of possibleMoveDice) {
for (let posMove of checker) {
let count :number =0;
for (let entry of p2) {
if (posMove == entry) {
count++;
if(count > 1){
//Remove from the possible moves
}
}
}
}
}
此算法的时间复杂度是二次的,但我正在寻找算法 使用较少的时间复杂度。如果有人有更好的方法或任何 建议改进代码,我们将非常感激。