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));
}
}
}
}
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;
}
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.