internal Simulation( int lengthInHours, BoardParameters boardParameters, int initialCaseCount) : this( lengthInHours, boardParameters, 0, initialCaseCount, new Dictionary <Hour, int>()) { }
internal Simulation( int lengthInHours, BoardParameters boardParameters, int minimumDaysBetweenOP, int initialCaseCount, Dictionary <int, int> arriving) : this( lengthInHours, boardParameters, minimumDaysBetweenOP, initialCaseCount, __scheduleArrivals(arriving)) { }
public static Simulation MakeSimulation( int years, BoardParameters boardParameters, int minimumDaysBetweenOP, int initialCaseCount, int arrivalsPerMonth = 0) { return(new Simulation( years * TimeParameters.HoursPerYear, boardParameters, minimumDaysBetweenOP, initialCaseCount, arrivalsPerMonth)); }
internal Simulation( int lengthInHours, BoardParameters boardParameters, int minimumDaysBetweenOP, int initialCaseCount, int arrivalsPerMonth) : this( lengthInHours, boardParameters, minimumDaysBetweenOP, initialCaseCount, __scheduleArrivals(arrivalsPerMonth, lengthInHours)) { }
internal Simulation( int lengthInHours, BoardParameters boardParameters, int minimumDaysBetweenOP, int initialCaseCount, Dictionary <Hour, int> arriving) { OPSchedule opSchedule = new SimpleOPScheduler(minimumDaysBetweenOP); Registrar registrar = new Registrar(opSchedule); _board = boardParameters.MakeBoard(registrar); _timeSpan = new SimulationTimeSpan(new Hour(0), new Hour(lengthInHours - 1)); _reports = new HourlyReports(); _arrivingCases = arriving; _assembleInitialCases(initialCaseCount); }