Prof. Dr. rer. nat. Peer Johannsen

Weird Science - Tales from the Vectrex Academy Lab

Vectrex Game Project Title


Project Status

  • Release version 1.2


  • A number-sorting puzzle-type game for the Vectrex

How To Play

  • Each level of the game shows a given set of numbers arranged around a set of rotors.
  • Each number is attached to one or more of the rotors.
  • The rotors then start turning for a couple of seconds, and the numbers are scrambled.
  • The aim now is to sort all numbers again in ascending order within a limited amount of time.
  • The player can rearrange the numbers by controlling and turning the rotors.
  • Ascending order of the numbers on the screen goes from left to right and top to bottom, just like reading the lines on a page of a book.
  • The brightness of a number indicates whether it is already in the correct position (bright) or not (dark).


  • The active rotor is selected by means of the joystick and indicated by highlighting and a center dot.
  • Buttons 1 and 2 cause the active rotor to turn counter clockwise.
  • Buttons 2 and 4 cause the active rotor to turn clockwise.


  • This is a single player game only.
  • There are two different game modes (selected by means of button 1 in the options menu).
  • The game can be started at any level (selected by means of buttons 2 and 3 in the options menu). Pictures of all levels/puzzles are shown in the screenshots section below.
  • Game mode 1 is arcade mode. Successful completion of a level advances the game to the next level. The player starts out with 3 lives, and the time for solving a level ranges between 1.5 minutes and 20 seconds.
  • Game mode 2 is training mode. The selected level is played as a single-level exercise. The time for solving the level is 4 minutes.
  • The training mode is intended for developing specific strategies for the individual puzzles. In arcade mode, the player can then go for the highscore.


  • At the beginning of each level, the player gets an advance of 100 points.
  • For each turn of a rotor, 1 point is deducted from the current score.
  • Thus, the less turns are used for solving a level, the higher the remaining score will be.
  • If a level is successfully solved within the given time limit, then the remaining number of seconds is added to the current score.
  • Thus, the less time is needed for solving a level, the higher the remaining score will be.
  • After each 4 subsequent levels solved, a bonus life is awarded.
  • In training mode, there is no score. Instead the number of turns is counted.


  • The game is written entirely in C, and it exclusively uses the Vectrex BIOS routines for interfacing with the console hardware (no low level assembly).
  • The idea for this puzzle has been lurking at the back of my mind for a very long time, but only recently I finally found the time to implement a first prototype.
  • The basic task of the puzzle is to sort a finite set of objects by using just a restricted set of elementary sorting operations.
  • The game principle is based on cyclic permutations of subsets of finite ranges of natural numbers.
  • Each level requires a different algorithmic strategy.
  • There are rotors of sizes 2, 3, 4, 5, and 6.
  • Level 1 is an illustration of the application of the well known Bubble-Sort algorithm.


  • Peer Johannsen

Screenshots and Overview of all Levels

Demo Videos

Some Thoughts

  • Just like the Rubik's Cube, this type of puzzle game is probably fun for some people, and rather torture for others. So it might not be enjoyable for everyone.
  • Some levels are really simple, some are surprisingly hard.
  • Let me know which levels you like and which you don't.
  • Your opinions and comments are highly appreciated!


  • Vectrex release version 1.2 binary rotor.bin
  • Overlay rotor.png
  • Game manual rotor.pdf (not yet available)
  • Downloads are free and for non commercial use only. Use at your own risk.
  • Please respect the copyright and credit the author and the origin of this game.

Additional Links


  • Beta testers wanted!
  • Feedback and bug reports are very welcome!
  • Please use this link to send your comments.

Latest modification on 05/26/2021, 11:00

  • Page updated and release version 1.2 uploaded on 05/26/2021 at 11:00
  • Demo Videos uploaded on 10/02/2020 at 10:00
  • Beta RC version 1.1 uploaded on 09/23/2020 at 17:30
  • New overlay with minor changes uploaded on 09/23/2020 at 17:29
  • Beta RC version 1.0 uploaded on 09/16/2020 at 11:30
  • All page sections updated on 09/15/2020 at 21:00
  • Some pieces of information added and revised on 08/26/2020 at 10:20
  • Alpha RC version 0.1 updloaded on 08/25/2020 at 21:30
  • Project information and screenshots updated on 08/25/2020 at 21:30
  • Page created on 08/25/2020 at 20:00