public void OnNewGame() { TranspositionTable.Clear(); foreach (var threadState in ThreadStates) { threadState.OnNewGame(); } }
public TranspositionTable Clone() { var table = new TranspositionTable(); table._size = _size; //table._principalVariation = _principalVariation.ToList(); table._entries = _entries.ToArray(); return(table); }
public SearchState Clone() { var newState = new SearchState(); newState.TranspositionTable = TranspositionTable.Clone(); newState.PrincipalVariationTable.Clone(); newState.ThreadStates = ThreadStates.Select(threadState => threadState.Clone()).ToArray(); return(newState); }
public void OnNewSearch() { TranspositionTable.SetSize(EngineOptions.Hash * 1024 * 1024); foreach (var threadState in ThreadStates) { threadState.OnNewSearch(); } PrincipalVariationTable.Clear(); }
//public AbdadaTable AbdadaTable { get; } public SearchState() { TranspositionTable = new TranspositionTable(); PrincipalVariationTable = new PrincipalVariationTable(); //AbdadaTable = new AbdadaTable(); ThreadStates = new ThreadUniqueState[SearchConstants.ThreadCount]; for (int i = 0; i < ThreadStates.Length; i++) { ThreadStates[i] = new ThreadUniqueState(i); } EmptyContinuation = new ContinuationEntry(); }