This project involves simulating a computer by using virtual NAND gates and virtual DFF's to slowly build up the components need to build the fundamental hardware (RAM, processor, etc.) and software (OS, compiler for a high-level language) needed to build and run a simple game, like tetris.
This project is possible because of the work done by the nand2tetris team, who have generously made their work available free online at nand2tetris.org.