Need in C# (NO Java). I have included code to copy from PlayingCards.cs and Program.cs I only need you to create Poker.cs file. Code must be in C#. I will upvote
Code to copy:
PlayingCards.cs
using System;
using System.Collections.Generic;
class PlayingCards {
private List deck = new List();
public PlayingCards() {
string[] suite = new string[] {"Clubs","Dimonds","Hearts","Spades"};
string[] values= new string[] {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
for(int i=0;i
for(int j=0;j
string newCard=values[j]+" of "+suite[i];
deck.Add(newCard);
}
}
}
public void Shuffle() {
Random myRand=new Random();
int numShuffles=myRand.Next(500);
int numCards=deck.Count;
for(int i=0;i int cardOne=myRand.Next(numCards);
int cardTwo=myRand.Next(numCards);
String tempCard=deck[cardOne];
deck[cardOne]=deck[cardTwo];
deck[cardTwo]=tempCard;
}
}
public string getNextCard() {
string nc;
if(deck.Count>0) {
nc=deck[0];
deck.RemoveAt(0);
}
else {
nc="Deck is empty";
}
return nc;
}
}
Program.cs
using System;
using System.Collections.Generic;
class Program {
public static List testHand1() {
List h1 = new List();
h1.Add("A of Hearts");
h1.Add("K of Hearts");
h1.Add("Q of Hearts");
h1.Add("J of Hearts");
h1.Add("10 of Hearts");
return h1;
}
public static List testHand2() {
List h1 = new List();
h1.Add("9 of Hearts");
h1.Add("K of Hearts");
h1.Add("Q of Hearts");
h1.Add("J of Hearts");
h1.Add("10 of Hearts");
return h1;
}
public static List testHand3() {
List h1 = new List();
h1.Add("9 of Hearts");
h1.Add("9 of Spades");
h1.Add("9 of Clubs");
h1.Add("9 of Dimonds");
h1.Add("2 of Hearts");
return h1;
}
public static List testHand4() {
List h1 = new List();
h1.Add("9 of Hearts");
h1.Add("9 of Spades");
h1.Add("2 of Clubs");
h1.Add("2 of Dimonds");
h1.Add("2 of Hearts");
return h1;
}
public static List testHand5() {
List h1 = new List();
h1.Add("2 of Hearts");
h1.Add("9 of Hearts");
h1.Add("A of Hearts");
h1.Add("3 of Hearts");
h1.Add("7 of Hearts");
return h1;
}
public static List testHand6() {
List h1 = new List();
h1.Add("5 of Hearts");
h1.Add("8 of Clubs");
h1.Add("9 of Dimonds");
h1.Add("7 of Spades");
h1.Add("6 of Hearts");
return h1;
}
public static List testHand7() {
List h1 = new List();
h1.Add("A of Hearts");
h1.Add("A of Clubs");
h1.Add("A of Spades");
h1.Add("3 of Hearts");
h1.Add("7 of Hearts");
return h1;
}
public static List testHand8() {
List h1 = new List();
h1.Add("A of Hearts");
h1.Add("A of Clubs");
h1.Add("7 of Spades");
h1.Add("3 of Hearts");
h1.Add("7 of Hearts");
return h1;
}
public static List testHand9() {
List h1 = new List();
h1.Add("A of Hearts");
h1.Add("A of Clubs");
h1.Add("7 of Spades");
h1.Add("3 of Hearts");
h1.Add("K of Hearts");
return h1;
}
public static List testHand10() {
List h1 = new List();
h1.Add("A of Hearts");
h1.Add("4 of Clubs");
h1.Add("7 of Spades");
h1.Add("3 of Hearts");
h1.Add("K of Hearts");
return h1;
}
public static void Main (string[] args) {
List royal = testHand1();
List straightFlush= testHand2();
List fourKind= testHand3();
List fullHouse= testHand4();
List flush= testHand5();
List straight= testHand6();
List threeKind= testHand7();
List twoPair= testHand8();
List onePair= testHand9();
List highCard= testHand10();
Console.WriteLine();
Poker gameOne=new Poker(royal,straightFlush);
gameOne.showHand(1);
Console.WriteLine(gameOne.scoreHand(1));
gameOne.showHand(2);
Console.WriteLine(gameOne.scoreHand(2));
Console.WriteLine();
Poker gameTwo=new Poker(fourKind,fullHouse);
gameTwo.showHand(1);
Console.WriteLine(gameTwo.scoreHand(1));
gameTwo.showHand(2);
Console.WriteLine(gameTwo.scoreHand(2));
Console.WriteLine();
Poker gameThree=new Poker(flush,straight);
gameThree.showHand(1);
Console.WriteLine(gameThree.scoreHand(1));
gameThree.showHand(2);
Console.WriteLine(gameThree.scoreHand(2));
Console.WriteLine();
Poker gameFour=new Poker(threeKind,twoPair);
gameFour.showHand(1);
Console.WriteLine(gameFour.scoreHand(1));
gameFour.showHand(2);
Console.WriteLine(gameFour.scoreHand(2));
Console.WriteLine();
Poker gameFive=new Poker(onePair,highCard);
gameFive.showHand(1);
Console.WriteLine(gameFive.scoreHand(1));
gameFive.showHand(2);
Console.WriteLine(gameFive.scoreHand(2));
Console.WriteLine();
Poker gameSix=new Poker();
gameSix.showHand(1);
Console.WriteLine(gameSix.scoreHand(1));
gameSix.showHand(2);
Console.WriteLine(gameSix.scoreHand(2));
}
}
Tasks: First you will need to download two files from the FYE site (next to this doc). If you are a C\# student you'll want PlayingCards.cs and main.cs. If you are a Java student you'll want PlayingCards.java and Main.java. You'll want to import (or copy/paste) these into your IDE to start. Your task is to write a new class called Poker. It will need a number of attributes and methods which are explained below: - First create a private attribute of type PlayingCards. Call it deck - Create two ArrayLists (Java) or Lists (C\#) called hand1 and hand2. These should be of type string as each card is a string. - Write a method called desilHands(). It should take no parameters and return void. Take the first card off the deck and put it in hand1. Then take the next card off the deck and put it in hand 2. Do this until both hands have 5 cards. - Write a constructor that takes no parameters Instantiate a PlayingClass object on your deck variable. Call the shuffle() method in PlayingClass to shuffle the deck. Call the dealHands method you just wrote. - Write a constructor that takes in two ArrayLists (Java) or Lists (C\#). Instantiate a PlayingClass object on your deck variable. Set hand1 to the first parameter, and hand2 to the second parameter. This constructor is used to test your later code. - Write a method called show Hand which takes in an integer and returns void. If the integer is 1 , show hand1, otherwise show hand2 Print out "Player 1 's hand:" Print out each of the cards in hand1. Then print an empty line. Print out 'Player 2's hand' Print out each of the cards in hand2 - Print out each of the cards in hand2 - See sample output below. - Write a method called countSuite, it should take in an ArrayList (Java) or List (C\#) of strings (the hand). It should retum an array of integers. - Go through all the cards in the hand. For each card, extract the suite from the string (you might need string split for this). Count how many cards are clubs, and put that value into cell 0 of the array you are going to return. Count how many cards are diamonds, and put that value into cell 1 of the array. Count the Hearts and put that into cell 2 . Finally count the spades and put that value into cell 3. Retum the array of integers which has the count of how many each suite you have. This will be useful when you check for flushes. - Write a method called countValues. It should take in an ArrayList (Java) or List (C\#) of strings (the hand). It should retum an array of integers. Create an array of size 14. Extract the value out of each card in the hand. Use the array to keep track of how many of each value you see. For example if you have an Ace (A) increment cell 1 of the array. If you have a card with a 6 you'd increment the value in cell 6 of the array. Increment cell 11 for Jack (J), cell 12 for Queen (Q) and cell 13 for King (K). Return the array. - Retum the array. - Write a method called numPairs which takes in an array of integers (the one you got back from countValues). It will return an integer. - Look through the array for any cell which has a 2 in it. Each cell that has a 2 indicates you have a pair. Return the number of pairs you found. - Write a method called threeOfAKind which takes in an array of integers (the one you got back from countValues). It returns an int. It should look through the array and see if any cell has a 3 in it, indicating there are 3 of that value. If so, return the cell number that has the 3 in it. Otherwise retum 0. - Write a method fourOfAKind which works the same as threeOfAKind but looks for a cell with a 4 in it. - Write a method called fullHouse. It should take in an array of integers (the one you got back from countValtues). It returns a boolean. Check if you have threeOfAKind and one pair. You have methods for checking each of these conditions. If yes, return true, otherwise false. - Write a method called straight. It should take in an array of integers (the one you got back from countValues). It returns a boolean. - You'll need to see if there are sequential cells in the array with a 1 in them. This would indicate that you have a straight. You'll also need to check for the one odd straight where you have a 10,J,Q,K,A. This is odd, because the 10 is in cell 10.J in 11,Q in 12,K in 13 , but the A is in cell 1 . - Write a method called flush. It should take in how many clubs, diamonds, hearts and spades you have in the hand. If any of those values are 5 , return true, otherwise false. - Write a method called straightFlush. It should take in an array of integers (the one you got back from countValues) as well as the number of clubs, diamonds, hearts and spades in the hand. Then simply check if you have both a straight and a flush. You have methods for each. If they are both true, return true. otherwise false. - Write a method called royalFlush which takes in the array of integers you got back from countValues, followed by the number of clubs, diamonds, hearts and spades you have. This method should return a boolean (Java) or bool (C\#). If you have 5 clubs, 5 diamonds. 5 hearts or 5 spades and cells 10,11,12,13 and 1 of the arrav have a 1 in them voru have a moval flush otherwise vou tont? - Write a method called royalFlush which takes in the array of integers you got back from countValues, followed by the number of clubs, diamonds, hearts and spades you have. This method should retum a boolean (Java) or bool (C\#). If you have 5 clubs, 5 diamonds, 5 hearts or 5 spades and cells 10,11,12,13 and 1 of the array have a 1 in them, you have a royal flush, otherwise you don't. - Write a method called scoreHand which takes in an integer and returns a string. The method will return a string which contains the strength of the hand. If the passed in parameter is 1 , this method will return the strength of hand1, otherwise it'll return the strength of hand2. - To determine the strength, start at the strongest hand (royal flush) and check if the hand qualifies, then try the next strongest. If none qualify you'll return "High Card". Example Runs: [User input in red] - Note: The first five hands should return exactly the same output, but the sixth hand is random hand, which will be different each time you run the code. Player 1 's hand: A of Hearts, K of Hearts, Q of Hearts, J of Hearts, 10 of Hearts, Royal Flush Player 2 's hand: 8 of Hearts, K of Hearts, Q of Hearts, J of Hearts, 10 of Hearts, Straight Flush Player 1 's hand: 9 of Hearts, 9 of Spades, 9 of Clubs, 9 of Diamonds, 2 of Hearts. 4 of a kind Player 2's hand: 9 of Hearts, 9 of Spades, 2 of Clubs, 2 of Diamonds, 2 of Hearts, Full House Player 1 's hand: 2 of Hearts, 9 of Hearts, A of Hearts, 3 of Hearts, 7 of Hearts, Flush Player 2's hand: 5 of Hearts, 8 of Clubs, 9 of Diamonds, 7 of Spades, 6 of Hearts, Straight Player 1's hand: A of Hearts,A of Clubs, A of Spades, 3 of Hearts, 7 of Hearts, 3 of a kind Player 2's hand: A of Hearts.A of Clubs, 7 of Spades, 3 of Hearts, 7 of Hearts, 2 pairs Player 1's hand: A of Hearts,A of Clubs, 7 of Spades, 3 of Hearts, K of Hearts; 1 pair Player 2 's hand: A of Hearts, 4 of Clubs, 7 of Spades, 3 of Hearts k