예제 #1
0
 private void TryAddLevelOneStatus(Candidates candidates)
 {
     foreach (var position in candidates[levels[0]])
     {
         if (levelOnePositionStatus is null)
         {
             levelOnePositionStatus = new DecisionKeyCacheStatus <Position, SearchState>(initBestPosition);
         }
         levelOnePositionStatus.AddDecision(position);
     }
 }
예제 #2
0
 public void TryBuildMoveStatus(ChessBoard chessBoard)
 {
     if (!visited)
     {
         visited         = true;
         directionStatus = new DecisionKeyCacheStatus <Direction, SearchState>(InitBestDirection);
         foreach (var direction in directions)
         {
             var newBoard = chessBoard.Copy();
             TryAddDirectionStatus(direction, newBoard);
         }
     }
 }