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
+11 -11
View File
@@ -21,8 +21,17 @@ public class Simulator
public bool IsFirstStep => State.StepCount == 0;
public CompletionState CompletionState => CalculateCompletionState(State);
public virtual bool IsComplete => CompletionState != CompletionState.Incomplete;
public virtual CompletionState CompletionState {
get
{
if (Progress >= Input.Recipe.MaxProgress)
return CompletionState.ProgressComplete;
if (Durability <= 0)
return CompletionState.NoMoreDurability;
return CompletionState.Incomplete;
}
}
public bool IsComplete => CompletionState != CompletionState.Incomplete;
public IEnumerable<ActionType> AvailableActions => ActionUtils.AvailableActions(this);
@@ -278,13 +287,4 @@ public class Simulator
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public void IncreaseQuality(float efficiency) =>
IncreaseQualityRaw(CalculateQualityGain(efficiency, false));
public static CompletionState CalculateCompletionState(SimulationState state)
{
if (state.Progress >= state.Input.Recipe.MaxProgress)
return CompletionState.ProgressComplete;
if (state.Durability <= 0)
return CompletionState.NoMoreDurability;
return CompletionState.Incomplete;
}
}