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(); } }
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); }
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; } }