Movement on the step function is currently done in a very inefficient way, moving every block by one position.
Make the tail's block move in front of the first block(the snake's head), in the direction the snake is headed, instead. This will keep the same apparent movement while improving efficiency.
Prevent movement from one direction to the opposite one. If the snake is moving right, it can't move left without going up or down first
Movement on the
step
function is currently done in a very inefficient way, moving every block by one position.