TIS-100 is a neat programming puzzle game. A lot of the programming challenges revolve around the limited nature of the CPU nodes in each system (two registers, no memory, very limited space for assembler source code). It's a fun game if you love to program. However, I found the later challenges somehow too frustrating and I haven't finished the game.