A series of solutions to nand2tetris, from nand gates to programming games