“The Elevator” is a simulation / tactical / cooperative game for Commodore C=64, Commodore VIC-20 (with expansion memory installed), Commodore PLUS/4, Commodore C=128, Atari, MSX, Memotech 500 and LM80C Color Computer (32KB), written in a short time thanks to the primitives made available by the "midres" library. The game participates in the mini challenge of Retro Programmers Inside.
The program simulates the behavior of an elevator, following the various calls that may arrive. It manages the passengers, thus simulating their passage through the doors. It wait a few seconds before closing the doors and reopen them if a person remains in the middle. Moreover, it checks for any overload or excess and prevent the lift from starting if there are more than four passengers. All these mechanisms are used to implement tactical and cooperative games.
The object of the game is to bring as many passengers as possible, in the shortest possible time, with the elevator. You have about two minutes per game.
The program starts in the “simulation” (SIMULATION) mode, and you can always return in this mode by pressing the key
S. In this mode there is no type of time limitation, and both passengers and the lift can be controlled freely by the player, by using those commands:
|1||Move lift to the first floor|
|2||Move lift to the second floor|
|3||Move lift to the third floor|
|4||Move lift to the fourth floor|
|5||Move lift to the fifth floor|
|Q||Press UP on the fifth floor|
|W||Press DOWN on the fifth floor|
|E||Press UP on the fourth floor|
|R||Press DOWN on the fourth floor|
|T||Press UP on the third floor|
|Y||Press DOWN on the third floor|
|U||Press UP on the second floor|
|I||Press DOWN on the second floor|
|O||Press UP on the first floor|
|P||Press DOWN on the first floor|
|Z||Add a passenger on the fifth floor|
|X||Add a passenger on the fourth floor|
|C||Add a passenger on the third floor|
|V||Add a passenger on the second floor|
|B||Add a passenger on the first floor|
However, the passengers are autonomous and reach the desired floor by themselves, interacting directly with the elevator. Passengers who reach the floor do not participate in the scoring.
By pressing the
SPACE key, you switch to “single player” game mode (SINGLE). In this mode, a stopwatch starts which will mark the approximately two minutes of play. All the passengers enter randomly from the left side of the screen and you cannot change this behavior (keys
B are disabled) and you cannot reserve the elevator (keys
P are disabled). However, you can operate the elevator by moving it to the various floors (by using keys
5), where passengers can get on and off by themselves. When one passenger reaches the right side, you earns points. The score acquired depends on how long it took the passenger to reach the desired floor. The longer the passenger had to wait (close/open the doors without entering into elevator or exiting from elevator), the lower the score you earn, as follows:
|More than 30||5 points|
|Less than 10||20 points|
Finally, by pressing the
G key you can switch to “cooperative” mode (COOPERATIVE), that support a sort of “multiplayer mode”. With this mode, which has the same time limits as the single game, you are able to command the passengers' entering (keys
B are enabled again). However, when you switch from commanding passengers (keys
B) to commanding the lift (keys
8), the commands will be inhibited for approximately 10 seconds. In this way it will be necessary to work cooperatively to obtain a good result.
The game is available on itch.io.
December, 7 2020 - Monday games!
game_elevator.c on the official repository of midres library.