You are invited to design and implement a card game which simulates a simplified version of Bridge. In such a game, 52 standard cards are dealt randomly to four players (each receives 13 cards). Initially there is one player who is assigned as the banker (randomly generated by the system). At each round, each player releases one card. The player whose card has the highest value of the same suit as the banker’s suit (lead suit) wins the round (scores 1 point) and becomes the new banker in the next round. The game terminates after 13 rounds. Card values are ordered from 2-Ace: 2 is the smallest and Ace the largest. The player who receives the highest scores is the winner of the game.
1.2 Tasks 1.2.1 Create a class called Card that represents a playing card. The class should include two private data items: value and suit. The member functions of the class should include, but not limited to, getValue(), setValue(int), getSuit(), setSuit(int) and displayCard() for accessing data members and display cards. Write a driver program to test the class. 1.2.2 Create a class called Player to simulate a dummy card player. The class should include at least two data items: playerName (string or char*) and holdingCards (array or vector of Card objects). The class should implement at least the following member functions: setPlayerName(string or char*), getPlayerName(), addCard(Card), release(Card&). The way of releasing cards can be simply removing a card from the top or bottom of holdingCards. Write a driver program to test the class. 1.2.3 Create a class called Game to simulate a card game. The class should be able to: · Store all players’ information (declare an array of four Player objects). · Store current score of each player. · Store current banker · Accept player names. · Randomly deal all 52 cards to four players (each holds 13 cards) at the beginning of each game. · Randomly assign a player as the banker at the beginning of each game. · Proceed with each round: collect players’ card, decide the winner and the next banker. · Display the score of each player at the end of each game. 1.2.4 (For Distinction or above only) Create a class called SmartPlayer which extends your Player class and implements smarter playing strategies try to win other players. A competition may organize with volunteering participants to test whose program is the smartest. 2.1 Documentation You are required to submit a report, which provides q a brief description of the problem and your solution q the pseudocode of your solution logic or UML description. q explanation of the major components of your program and functionality. q testing (very briefly no more than half page). q conclusion and references The report should not exceed 4 pages in A4 paper written in Microsoft Word. 3.2 Source code You are only allowed to use C++ to code your solution.
any that runs c++