private void howLong(FloorNum floor, Dir dir, Buffer<WaitTime> b) { Time t = WaitTime(dir, floor, Now, Stops); Reservation reservation = new Reservation(); b.Put(new WaitTime(t, reservation)); if (reservation.Get()) { Stops = Insert(dir, floor, Now, Stops); } }
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; } }