public Card[] DeckBuilder() { var deck = new Card[52]; for (var i = 0; i < deck.Length; i++) { deck[i] = new Card(_suits[i/13], _rank[i%13]); } return deck; }
public static bool AreDeckEquals(Card[] actual, Card[] expected) { if (expected.Length != actual.Length) { return false; } for (var i = 0; i < actual.Length; i++) { if (!actual[i].Rank.Equals(expected[i].Rank) && !actual[i].Suit.Equals(expected[i].Suit)) return false; } return true; }
public Card[] Shuffle(Card[] deck) { var rand = _random; for (var i = deck.Length; i > 1; i--) { var v = rand.Next(i); var tmp = deck[v]; deck[v] = deck[i - 1]; deck[i - 1] = tmp; } return deck; }
public Card[] Shuffle2(Card[] deck) { var r = new Random(); for (var i = 0; i < deck.Length - 1; i++) { var j = r.Next(deck.Length - 1); var temp = deck[j]; deck[i] = deck[j]; deck[j] = temp; } return deck; }
public bool IsDeckValid(Card[] deck) { var d = deck .GroupBy(x => new {x.Suit, x.Rank}).Count(g => g.Count() > 1); return d < 1; }