public StepSimulator(int noFloors, int noElevators) { floors = new Floor[noFloors]; for (int i = 0; i < noFloors; i++) { floors[i] = new Floor(); } elevators = new Elevator[noElevators]; for (int i = 0; i < noElevators; i++) { elevators[i] = new Elevator(noFloors); elevators[i].ArrivedAtFloor += OnElevatorArrives; } //Create a ton of new people at random to start off. For testing Random rand = new Random(); for (int i = 0; i < 10; i++) { int floor = rand.Next(0, floors.Length); int targetFloor = rand.Next(0, floors.Length); while (targetFloor == floor) { targetFloor = rand.Next(0, floors.Length); } Person p = new Person(targetFloor, Pathfinder.FindPath(targetFloor, floor, elevators)); floors[floor].AddPerson(p); } sbuilder = new StringBuilder(); //Jumpstart system foreach (Elevator e in elevators) { OnElevatorArrives(e); } }
public void RideElevator(Elevator elevator) { elevator.ArrivedAtFloorPerson += OnElevatorArrives; state = PersonState.Riding; }
void OnElevatorArrives(Elevator elevator) { floors[elevator.CurrentFloor].AttemptLoadPersons(elevators[elevator.ElevatorID]); }