Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C# Console The project is to build a card game. The game is a little bit like Po

ID: 662774 • Letter: C

Question

C# Console

The project is to build a card game. The game is a little bit like Poker, but much simplified.

Player starts with $10, and the bet is $1 for each new hand played. When Player gets to $0, the game is over.

This what I have thus far:

namespace PokerGame_Hanlon
{
public enum Suit
{
Spade,
Heart,
Club,
Diamond,
}

public enum Number
{
Ace = 1,
Two = 2,
Three = 3,
Four = 4,
Five = 5,
Six = 6,
Seven = 7,
Eight = 8,
Nine = 9,
Ten = 10,
Jack = 11,
Queen = 12,
King = 13,
}

public class Card
{
private Suit suit;
private Number number;

public Card(Suit suit, Number number)
{
this.suit = suit;
this.number = number;
}
}

public abstract class CardCollection
{
protected List cards = new List();

public void AddCard(Card card)
{
this.cards.Add(card);
}

public void RemoveCard(Card card)
{
if (this.cards.Contains(card) == true)
{
this.cards.Remove(card);
}
else
{
throw new InvalidOperationException("The card is not in the deck");
}
}
}

public class Hand : CardCollection
{
}

public class Deck : CardCollection
{
public Deck()
{
foreach (Suit currentSuit in Enum.GetValues(typeof(Suit)))
{
foreach (Number currentNumber in Enum.GetValues(typeof(Number)))
{
AddCard(new Card(currentSuit, currentNumber));
}
}
}
}

T file:///C:/Users/kurt/Google Drive/BellevueCollege/Prog 120 OO/CardClassLib OCt13-flush/TestCar You have $1G New Hand DEALER HAND hree of Clubs ive of Spades ix of Spades ing of Heart Ace of Spades YOUR HAND ueen of Diamonds ine of Diamonds ine of Clubs our of Hearts our of Spades which card would you like to draw and replace? D for none, else 1.2.3.4,5 4 DEALER HAND ive of Hearts ive of Spades ix of Spades ing of Heart Ace of Spades YOUR HAND een of Dian ueen of Diamonds ine of Diamonds ine of Clubs even of Hearts our of Spades You lost. You have $9 Type Enter for another Hand

Explanation / Answer

The below code uses random function to select cards randomly so that decks have random cards each time.

Each player is having there own seperate deck and the combinations are pre defined in enum. Once the program runs, players are given the cards at random and the game goes as per the define logic.

Please note that

Code :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PokerGame_Hanlon
{
public enum Combination
{
None,
Pair,
TwoPair,
ThreeofaKind,
Straight,
Flush,
FullHouse,
FourofaKind,
StraightFlush,
RoyalFlush,
}
public enum Suit
{
Spades,
Hearts,
Clubs,
Diamonds,
}
public enum Number : int
{
Ace = 1,
Two = 2,
Three = 3,
Four = 4,
Five = 5,
Six = 6,
Seven = 7,
Eight = 8,
Nine = 9,
Ten = 10,
Jack = 11,
Queen = 12,
King = 13,
}
public class Card
{
public Suit suit;
public Number number;
public Card(Suit s, Number n)
{
suit = s;
number = n;
}
}
public class Player
{
Deck PlayerDeck = new Deck();
public List<Card> hand = new List<Card>();

public void GenerateHand()
{
for (int i = 0; i < 5; i++)
{
Card c = PlayerDeck.RandomCard();
hand.Add(c);
PlayerDeck.deck.Remove(c);
}
}
public Combination CardCombo(Combination cardcombo)
{
cardcombo = Combination.None;
return cardcombo;
}
public Card HighCard() // If combination = none, highest card is calculated
{
return null;
}
}
class Deck
{
private Random rand = new Random();
public List<Card> deck = new List<Card>();
public Deck()
{
Card AofS = new Card(Suit.Spades, Number.Ace);
deck.Add(AofS);
Card TwoofS = new Card(Suit.Spades, Number.Two);
deck.Add(TwoofS);
Card ThreeofS = new Card(Suit.Spades, Number.Three);
deck.Add(ThreeofS);
Card FourofS = new Card(Suit.Spades, Number.Four);
deck.Add(FourofS);
Card FiveofS = new Card(Suit.Spades, Number.Five);
deck.Add(FiveofS);
Card SixofS = new Card(Suit.Spades, Number.Six);
deck.Add(SixofS);
Card SevenofS = new Card(Suit.Spades, Number.Seven);
deck.Add(SevenofS);
Card EightofS = new Card(Suit.Spades, Number.Eight);
deck.Add(EightofS);
Card NineofS = new Card(Suit.Spades, Number.Nine);
deck.Add(NineofS);
Card TenofS = new Card(Suit.Spades, Number.Ten);
deck.Add(TenofS);
Card JackofS = new Card(Suit.Spades, Number.Jack);
deck.Add(JackofS);
Card QueenofS = new Card(Suit.Spades, Number.Queen);
deck.Add(QueenofS);
Card KingofS = new Card(Suit.Spades, Number.King);
deck.Add(KingofS);
Card AofH = new Card(Suit.Hearts, Number.Ace);
deck.Add(AofH);
Card TwoofH = new Card(Suit.Hearts, Number.Two);
deck.Add(TwoofH);
Card ThreeofH = new Card(Suit.Hearts, Number.Three);
deck.Add(ThreeofH);
Card FourofH = new Card(Suit.Hearts, Number.Four);
deck.Add(FourofH);
Card FiveofH = new Card(Suit.Hearts, Number.Five);
deck.Add(FiveofH);
Card SixofH = new Card(Suit.Hearts, Number.Six);
deck.Add(SixofH);
Card SevenofH = new Card(Suit.Hearts, Number.Seven);
deck.Add(SevenofH);
Card EightofH = new Card(Suit.Hearts, Number.Eight);
deck.Add(EightofH);
Card NineofH = new Card(Suit.Hearts, Number.Nine);
deck.Add(NineofH);
Card TenofH = new Card(Suit.Hearts, Number.Ten);
deck.Add(TenofH);
Card JackofH = new Card(Suit.Hearts, Number.Jack);
deck.Add(JackofH);
Card QueenofH = new Card(Suit.Hearts, Number.Queen);
deck.Add(QueenofH);
Card KingofH = new Card(Suit.Hearts, Number.King);
deck.Add(KingofH);
Card AofC = new Card(Suit.Clubs, Number.Ace);
deck.Add(AofC);
Card TwoofC = new Card(Suit.Clubs, Number.Two);
deck.Add(TwoofC);
Card ThreeofC = new Card(Suit.Clubs, Number.Three);
deck.Add(ThreeofC);
Card FourofC = new Card(Suit.Clubs, Number.Four);
deck.Add(FourofC);
Card FiveofC = new Card(Suit.Clubs, Number.Five);
deck.Add(FiveofC);
Card SixofC = new Card(Suit.Clubs, Number.Six);
deck.Add(SixofC);
Card SevenofC = new Card(Suit.Clubs, Number.Seven);
deck.Add(SevenofC);
Card EightofC = new Card(Suit.Clubs, Number.Eight);
deck.Add(EightofC);
Card NineofC = new Card(Suit.Clubs, Number.Nine);
deck.Add(NineofC);
Card TenofC = new Card(Suit.Clubs, Number.Ten);
deck.Add(TenofC);
Card JackofC = new Card(Suit.Clubs, Number.Jack);
deck.Add(JackofC);
Card QueenofC = new Card(Suit.Clubs, Number.Queen);
deck.Add(QueenofC);
Card KingofC = new Card(Suit.Clubs, Number.King);
deck.Add(KingofC);
Card AofD = new Card(Suit.Diamonds, Number.Ace);
deck.Add(AofD);
Card TwoofD = new Card(Suit.Diamonds, Number.Two);
deck.Add(TwoofD);
Card ThreeofD = new Card(Suit.Diamonds, Number.Three);
deck.Add(ThreeofD);
Card FourofD = new Card(Suit.Diamonds, Number.Four);
deck.Add(FourofD);
Card FiveofD = new Card(Suit.Diamonds, Number.Five);
deck.Add(FiveofD);
Card SixofD = new Card(Suit.Diamonds, Number.Six);
deck.Add(SixofD);
Card SevenofD = new Card(Suit.Diamonds, Number.Seven);
deck.Add(SevenofD);
Card EightofD = new Card(Suit.Diamonds, Number.Eight);
deck.Add(EightofD);
Card NineofD = new Card(Suit.Diamonds, Number.Nine);
deck.Add(NineofD);
Card TenofD = new Card(Suit.Diamonds, Number.Ten);
deck.Add(TenofD);
Card JackofD = new Card(Suit.Diamonds, Number.Jack);
deck.Add(JackofD);
Card QueenofD = new Card(Suit.Diamonds, Number.Queen);
deck.Add(QueenofD);
Card KingofD = new Card(Suit.Diamonds, Number.King);
deck.Add(KingofD);
}
private void Shuffle()
{
Random rand = new Random();
int y = 0;
foreach (Card c in deck)
{
y++;
}
for (int i = 0; i < 100; i++)
{
int x = rand.Next(0, y);
Card c = deck[x];
deck.Remove(c);
deck.Add(c);
}
}
public Card RandomCard()
{
Shuffle();
Random rand = new Random();
int y = 0;
foreach (Card c in deck)
{
y++;
}
int x = rand.Next(0, y);
return deck[x];
}
public Player DetermineWinner(Player One, Player Two, Player Three, Player Four)
{
return null;
}
}
class Program
{
static void Main(string[] args)
{
Console.Title = "Poker";
Player PlayerOne = new Player();
Player PlayerTwo = new Player();
  
PlayerOne.GenerateHand();
PlayerTwo.GenerateHand();

bool quit = false;
Console.WriteLine("Welcome to Poker!");
Console.WriteLine("Want to play?");
string userinput = Console.ReadLine();
if (userinput == "no" || userinput == "n") quit = true;
while (!quit)
{
Console.WriteLine("Your cards are: ");
for (int a = 0; a < 5; a++)
{
Console.Write(PlayerOne.hand[a].number.ToString());
Console.Write(" of ");
Console.Write(PlayerTwo.hand[a].suit.ToString());
Console.Write(" ");
}
for (int b = 0; b < 5; b++)
{
Console.Write(PlayerTwo.hand[b].number.ToString());
Console.Write(" of ");
Console.Write(PlayerTwo.hand[b].suit.ToString());
Console.Write(" ");
}
  
  
quit = true;
}
}


}
}