9-point version of the assignment. Player is now an abstract class and all movement is taken care by the MoveBehavior class