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); } }
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); } } }