In the comments of the gist, I created a friendly fork using scene.Layers. I find that Layers simplify drawing logic. When LAYER_DRAW is set to True, the methods draw_problems() and draw_buttons() are no longer required. There is an old blocks problem that I was unable to resolve that probably requires some del commands on blocks when starting gameplay. I had a similar issue when I ported JumpyOctopus.py to use Layers.