If you have ever programmed or considered programming, play this game.
It is really a machine language simulator.
The start easy and get hard really fast.
The difficulty lies in limited coding lines, and registers.
Parallel modules communicating and timing make for challenging scenarios.
Pros: Atmospheric and great fun for those who like programming.
Cons: Hard levels
http://www.zachtronics.com/tis-100/https://en.wikipedia.org/wiki/TIS-100