Пример #1
0
 private void ChooseDir(Floor floor)
 {
     mDir = (floor.mNum == 0) ? Dir.Up :
         (floor.mNum == Program.NUMFLOORS - 1) ? Dir.Down
         : (Dir)random.Next(0, 2);
       if (mDir == Dir.Up) { floor.Up(); }
       if (mDir == Dir.Down) { floor.Down(); }
 }
Пример #2
0
 private void ChooseFloor(Floor floor, Lift lift)
 {
     if (mDir == Dir.Up) mNext = random.Next(floor.mNum + 1, Program.NUMFLOORS);
       if (mDir == Dir.Down) mNext = random.Next(0, floor.mNum);
       lift.Stop(mNext);
 }
Пример #3
0
 private void arrived(Floor floor, Buffer<Action> b)
 {
     Now = floor.mNum;
       if (Stops.Null()) {
     b.Put(Action.Wait);
     return;
       }
       if (Stops.Hd() == Now) {
     Stops = Stops.Tl();
     b.Put(Action.Stop);
     foreach (Person p in mPeople) { p.Stopped(floor); };
     return;
       }
       if (Stops.Hd() > Now) {
     b.Put(Action.Up);
     return;
       }
       if (Stops.Hd() < Now) {
     b.Put(Action.Down);
     return;
       }
 }