public void Shuffle() { //Card[] newDeck = new Card[52]; Cards newDeck = new Cards(); bool[] assigned = new bool[52]; Random sourceGen = new Random(); for (int i = 0; i < 52;i++ ) { //int destCard = 0; int sourceCard = 0; bool foundCard = false; while(foundCard==false) { sourceCard = sourceGen.Next(52); //destCard = sourceGen.Next(52); //if (assigned[destCard] == false) if(assigned[sourceCard]==false) foundCard = true; } //assigned[destCard] = true; assigned[sourceCard] = true; //newDeck[destCard] = cards[i]; newDeck.Add(cards[sourceCard]); } //newDeck.CopyTo(cards,0); newDeck.CopyTo(cards); }
public object Clone() { Cards newCards = new Cards(); foreach (Card sourceCard in List) { newCards.Add(sourceCard.Clone() as Card); } return newCards; }
public Deck() { //cards = new Card [52]; //int index = 0; for (int suitVal = 0; suitVal < 4; suitVal++) { for (int rankVal = 1; rankVal < 14; rankVal++) { CurrentDeck.Add(new Card((Suit)suitVal, (Rank)rankVal)); //cards[index] = new Card((Suit)suitVal, (Rank)rankVal); //index++; } } }
static void Main(string[] args) { Deck deck1 = new Deck(); Cards x = new Cards(); x.Add(new Card((Suit)1,(Rank)1)); Console.WriteLine(x.Count); Deck deck2 = (Deck)deck1.Clone(); Console.WriteLine("The first card in the original deck is: {0}", deck1.GetCard(0)); // Первая карта в исходной колоде Console.WriteLine("The first card in the cloned deck is: {0}", deck2.GetCard(0)); // Первая карта в клонированной колоде deck1.Shuffle(); Console.WriteLine("Original deck shuffled."); // Исходная колода перемешана Console.WriteLine("The first card in the original deck is: {0}", deck1.GetCard(0)); Console.WriteLine("The first card in the cloned deck is: {0}", deck2.GetCard(0)); Console.ReadKey(); Console.WriteLine("Part 2"); Card.isAceHigh = true; Console.WriteLine("Aces are high."); // Тузы являются старшей картой Card.useTrumps = true; Card.trump = Suit.Club; Console.WriteLine("Clubs are trumps."); // Трефы являются козырной мастью Card card1, card2, card3, card4, card5; card1 = new Card(Suit.Club, Rank.Five); card2 = new Card(Suit.Club, Rank.Five); card3 = new Card(Suit.Club, Rank.Ace); card4 = new Card(Suit.Heart, Rank.Ten); card5 = new Card(Suit.Diamond, Rank.Ace); Console.WriteLine("{0} == {1} ? {2}", card1.ToString(), card2.ToString(), card1 == card2); Console.WriteLine("{0} != {1} ? {2}", card1.ToString() , card3.ToString(), card1 !=card3); Console.WriteLine("{0}.Equals({1}) ? {2}", card1.ToString(), card4.ToString(), card1.Equals(card4)); Console.WriteLine("Card.Equals({0}, {1}) ? {2}", card3.ToString(), card4.ToString(), Card.Equals(card3, card4)); Console.WriteLine("{0} > {1} ? {2}", card1.ToString (), card2.ToString (), card1 > card2); Console.WriteLine("{0} <= {1} ? {2}", card1.ToString (), card3.ToString (), card1 <= card3); Console.WriteLine("{0} > {1} ? {2}", card1.ToString (), card4.ToString(), card1 > card4); Console.WriteLine("{0} > {1} ? {2}", card4.ToString(), card1.ToString (), card4 > card1); Console.WriteLine("{0} > {1} ? {2}", card5.ToString (), card4.ToString (), card5 > card4); Console.WriteLine("{0} > {1} ? {2}", card4.ToString (), card5.ToString (), card4 > card5); Console.ReadKey(); }
public void Shuffle() { Cards newDeck = new Cards(); bool[] assigned = new bool[52]; Random sourceGen = new Random(); for (int i = 0; i < 52; i++) { int sourceCard = 0; bool foundCard = false; while (foundCard == false) { sourceCard = sourceGen.Next(52); if (assigned[sourceCard] == false) foundCard = true; } assigned[sourceCard] = true; newDeck.Add(cards[sourceCard]); } newDeck.CopyTo(cards); }
public Deck() { //// Book solution //for (int suitVal = 0; suitVal < 4; suitVal++) //{ // for (int rankVal = 1; rankVal < 14; rankVal++) // { // cards.Add(new Card((Suit)suitVal, (Rank)rankVal)); // } //} // Loop through all the Suit and Rank enum values foreach (Suit suit in Enum.GetValues(typeof(Suit))) { foreach (Rank rank in Enum.GetValues(typeof(Rank))) { cards.Add(new Card(suit, rank)); } } }
/// <summary> /// Shuffles all the cards in this deck. /// </summary> public void Shuffle() { // Create a temporary collection to shuffle the cards into. Cards newDeck = new Cards(); // Create an array to track which elements of the temporary array already have // a card assigned to them. bool[] assigned = new bool[52]; // Use a Random class to select the positions to shuffle the cards into. Random sourceGen = new Random(); // Shuffle each card in the cards field into the temporary collection. for (int i = 0; i < 52; i++) { int sourceCard = 0; bool foundCard = false; while (foundCard == false) { // Generate random numbers from 0 - 51 until we find a position in the // temporary array that doesn't have a card assigned to it. sourceCard = sourceGen.Next(52); if (assigned[sourceCard] == false) { foundCard = true; } } //Set the flag that an empty position was found, and assign the current card // to it. assigned[sourceCard] = true; newDeck.Add(cards[sourceCard]); } // Copy the shuffled deck back into the same instance of the cards field. // Note that cards = newDeck would create a new instance in cards, which could // cause problems if some other code was holding a reference to the original // instance of cards. newDeck.CopyTo(cards); }
public void Shuffle() { Cards newDeck = new Cards(); bool[] assigned = new bool[52]; Random sourceGen = new Random(); for (int i = 0; i < 52; i++) { int sourceCard = 0; bool foundCard = false; while (foundCard == false) { sourceCard = sourceGen.Next(52); if (assigned[sourceCard] == false) { foundCard = true; } } assigned[sourceCard] = true; newDeck.Add(cards[sourceCard]); } newDeck.CopyTo(cards); }
public void Shuffle() { Cards newDeck = new Cards(); //bool[] assigned = new bool[52]; Random sourceGen = new Random(); //for (int i = 0; i < 52; i++) //{ // int destCard = 0; // bool foundCard = false; // while (foundCard == false) // { // destCard = sourceGen.Next(52); // Debug.WriteLine(destCard); // Debug.WriteLine(assigned[destCard]); // if (assigned[destCard] == false) // { // foundCard = true; // } // } // assigned[destCard] = true; // newDeck[destCard] = cards[i]; //} //for (int i = 0; i < 52; i++) //{ int destCard = sourceGen.Next(52); int i = 0; //newDeck[destCard] = cards[i]; //destCard = sourceGen.Next(52); while (i < 52) { destCard = sourceGen.Next(52); if (!newDeck.Contains(GetCard(destCard))) { newDeck.Add(cards[destCard]); i++; } else { destCard = sourceGen.Next(52); if (!newDeck.Contains(GetCard(destCard))) { newDeck.Add(cards[destCard]); i++; } } } //} newDeck.CopyTo(cards); }