Split solver into MCTS and algorithms

This commit is contained in:
Asriel Camora
2023-10-02 13:07:06 -07:00
parent e6081f5e60
commit c0f579f23b
12 changed files with 444 additions and 406 deletions
+10 -6
View File
@@ -9,8 +9,16 @@ public sealed class Simulator : SimulatorNoRandom
{
private readonly int maxStepCount;
public new CompletionState CompletionState => CalculateCompletionState(State, maxStepCount);
public override bool IsComplete => CompletionState != CompletionState.Incomplete;
public override CompletionState CompletionState
{
get
{
var b = base.CompletionState;
if (b == CompletionState.Incomplete && (ActionCount + 1) >= maxStepCount)
return CompletionState.MaxActionCountReached;
return b;
}
}
public Simulator(SimulationState state, int maxStepCount) : base(state)
{
@@ -187,8 +195,4 @@ public sealed class Simulator : SimulatorNoRandom
return ret;
}
public static CompletionState CalculateCompletionState(SimulationState state, int maxStepCount) =>
state.ActionCount + 1 >= maxStepCount ?
CompletionState.MaxActionCountReached :
(CompletionState)CalculateCompletionState(state);
}