コード例 #1
0
        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);
            }
        }
コード例 #2
0
ファイル: Person.cs プロジェクト: Fleetriga/ElevatorSimulator
 public void RideElevator(Elevator elevator)
 {
     elevator.ArrivedAtFloorPerson += OnElevatorArrives;
     state = PersonState.Riding;
 }
コード例 #3
0
 void OnElevatorArrives(Elevator elevator)
 {
     floors[elevator.CurrentFloor].AttemptLoadPersons(elevators[elevator.ElevatorID]);
 }