Along similar lines, writing a simple emulator (e.g. Chip-8) or a 3D model loader/renderer/animator (e.g. for md2 or md3 files, which have an open spec and lots of models available) would be similarly good I think, depending on your interest. In any case, you still get the implementing a spec practice and very visible results.