寻找步步高可能的举动

时间:2017-04-05 07:08:18

标签: algorithm graph-algorithm

Find an possible moves in Backgammon games.

我写了一个蛮力方法,可以检测可能的动作。

  1. 在回合玩家检查器中添加了一个骰子值

    // 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=[];
    
      }
    
  2. 如果对手检查者将此可能的行动与对手检查者进行比较 如果排除了不止一个这样的可能的举动。

    //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
                }
             }
          }
       }
    }
    
  3.   

    此算法的时间复杂度是二次的,但我正在寻找算法   使用较少的时间复杂度。如果有人有更好的方法或任何   建议改进代码,我们将非常感激。

0 个答案:

没有答案