cs3113 assignment 4 (single-screen platformer)