Background

You will develop a simplified version of the card game Le Truc. (Le Truc means trick in French.) Originated in Spain, Le Truc is an old card game dating back to 1400s. It's quite simple but can be fun to play.

Basic Gameplay Requirements

1. The game will use 32 playing cards. The suits don't matter; only the values count. For example, 8 of Heart is the same as 8 of Diamond. So you dont need to implement suits in this program.

You don't have to use playing card values. For example, your entire deck can be {0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7}.

However, if you want to be true to the game's original rules, the cards should be: (low) 9,10,J,Q,K,A,8,7 (high). You can use the enumeration type in C# to define this list.

2. You will implement a human-vs-computer game. A human player will play against a computer player.

3. The game is played through multiple rounds. For each round, the game manager gives each player three random cards from the deck. Each round consists of three tricks (hence the name Le Truc).

For each trick, each player will pick a card and battle. The player who plays the higher valued card wins this trick. If the two cards are equal, the trick is "spoilt" and no one wins.

After three tricks, whoever has the higher number of tricks wins this round. If the trick score is 1-1, whoever wins the first trick wins this round. If the trick score is 0-0, then no one wins this round.

The trick score is only used to decide the winner of each round, and is not counted into the player's points.

4. The winner of a round wins one point. The first player to win 12 points wins the game.

Additional Requirements

5. Raising the score. Before each trick is played, the human player may raise the point value of the round by selecting "Two more?". The computer player has three options: Accept, Two more?, or Fold.

a. If the computer player chooses Accept, this round's value is doubled (1x2=2). The battle for this trick can begin.

b. If the computer player chooses "Two more?", the computer player is challenged to double the point value of the round. The human player also has three choices: Accept, Two more?, or Fold.

i. If the human player chooses Accept, the value of the round is again doubled (2x2=4). The battle for this trick can begin.

ii. If the human player chooses "Two More?", the human player is again challenging the computer player to double the value of the round. Such challenges can go on until the point value of the round reaches 12.

iii. If the human player chooses Fold, the human player loses this trick. The point value of this round is unchanged. We move on to the next trick.

c. If the computer chooses Fold, the computer player loses this trick. The point value of this round is unchanged. We move on to the next trick.

Bonus Requirements

6. My remainder! Before each trick is played, the human player can go all in by selecting "My remainder!" The computer player has two options: Accept or Fold.

a. If the computer player chooses Accept, the point value of the round is raised to the maximum 12 points. The battle of this trick can begin. Whoever wins this round will win the game.

b. If the computer chooses Fold, the computer player loses this trick. The point value of this round is unchanged. We move on to the next trick.

Programming requirements

1. You must write your programs in C#.

2. You must use object-oriented programming. If you don't use object-oriented programming in this assignment, you will lose a significant amount of points even if the gameplay is correct.

3. You must define the following classes: LeTruc (which contains the Main() method), GameManager, Player, HumanPlayer (derived from Player), and ComputerPlayer (derived from Player).

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.