Implemented abstract player class and corresponding derived classes