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

Here is my code: using System; using System.Collections.Generic; using System.Li

ID: 662816 • Letter: H

Question

Here is my code:

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

namespace Hanlon_PokerGame
{
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 hand = new List();

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 deck = new List();
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;
}
}
}

Program:

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

namespace Hanlon_PokerGame
{
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(" ");
Console.ReadLine();
}


quit = true;
}
}


}
}

Explanation / Answer

Below is the code which is implemented till finding the Combination and the lowest card from the dealer's hand. Same Logic can be used for finding the Combination and the lowest card if no combination. Full functionality was not completed because of time constraint.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Hanlon_PokerGame
{
public enum Combination
{
None,
Pair,
TwoPair,
ThreeofaKind,
Straight,
Flush,
FullHouse,
FourofaKind,
StraightFlush,
RoyalFlush,
GreaterThanSeven
}
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);
}
}

// method parameter changed because old method was of no use
// Combination is checked for FLUSH as the problem demands the same.
public Combination CardCombo(List<Card> hand)
{

Suit currentSuit = hand[0].suit;
Number currentNumber = hand[0].number;
bool sameSuit = false;
bool numberGreaterThan7 = false;
foreach (Card c in hand)
{

if (Convert.ToInt32(c.number) > 7)
{
numberGreaterThan7 = true;
}
else
{
numberGreaterThan7 = false;
}
}
if (numberGreaterThan7)
{
return Combination.GreaterThanSeven;
}
else
{
foreach (Card c in hand)
{
if (currentSuit == c.suit)
{
sameSuit = true;
}
else
{
sameSuit = false;
}
}
if (sameSuit)
{
return Combination.Flush;
}
else
{
return Combination.None;
}

}

}
public Card lowestCard(List<Card> hand)
{
Number smallestNumber = hand[0].number;
Card sample = hand[0];
  
foreach (Card c in hand)
{
if (Convert.ToInt32(smallestNumber) > Convert.ToInt32(c.number))
{
smallestNumber = c.number;
sample = c;
}
}
return sample;
}
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;
}

}
public class Program
{
static void Main(string[] args)
{
int total_amount = 10;
Console.Title = "Poker";
Player Dealer_Hand = new Player();
Player Your_Hand = new Player();

Dealer_Hand.GenerateHand();
Your_Hand.GenerateHand();


bool quit = false;

Console.WriteLine("You hav $" + total_amount);
Console.WriteLine("New Hand");
String userinput = "";
while (total_amount != 0)
{
ConsoleKeyInfo keyPressed = Console.ReadKey();
if (keyPressed.Key == ConsoleKey.Enter)
{
Card smallestCardInDealerHand;
Console.WriteLine("DEALER HAND");
for (int a = 0; a < 5; a++)
{
  
Console.Write(Dealer_Hand.hand[a].number.ToString());
Console.Write(" of ");
Console.Write(Dealer_Hand.hand[a].suit.ToString());
Console.Write(" ");
}
Combination combination= Dealer_Hand.CardCombo(Dealer_Hand.hand);

if (combination == Combination.None)
{
smallestCardInDealerHand = Dealer_Hand.lowestCard(Dealer_Hand.hand);
Dealer_Hand.hand.Remove(smallestCardInDealerHand);
  
}

for (int a = 0; a < 5; a++)
{
Console.WriteLine("YOUR HAND");
Console.Write(Your_Hand.hand[a].number.ToString());
Console.Write(" of ");
Console.Write(Your_Hand.hand[a].suit.ToString());
Console.Write(" ");
}
Console.WriteLine("which card would you like to draw and replace?");
Console.WriteLine("0 for none, else 1,2,3,4,5");
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(Dealer_Hand.hand[a].number.ToString());
Console.Write(" of ");
Console.Write(Your_Hand.hand[a].suit.ToString());
Console.Write(" ");
}
for (int b = 0; b < 5; b++)
{
Console.Write(Your_Hand.hand[b].number.ToString());
Console.Write(" of ");
Console.Write(Your_Hand.hand[b].suit.ToString());
Console.Write(" ");
Console.ReadLine();
}

quit = true;
}
}
}

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote