The Elevator State Machine Programming Test
Build an elevator simulator. It should have a UI that shows 5 floors, with the call buttons for each floor. The UI should also show the panel of buttons inside the elevator. As a user, I can press any floor call button (up or down), as well as elevator panel buttons to move the elevator. The elevator should move at a realistic speed (not just go instantaneously to the desired floor).
Evaluation criteria:
- Accuracy of the elevator state machine with various button-press scenarios.
- The object design of your project – how you organize the design into classes and their relationships, what design patterns you choose to use.
- Coding style and clarity.
- The UI doesn’t need to be fancy, but it needs to enable the functional requirements stated above. You can use any UI toolkit of your choice.