private void addCards(UnoCard card, int times) { for (int i = 0; i < times; i++) { cards.Add(card); } }
public bool CanMatch(UnoCard card) { if (Hand.Where(x => x.Color.Equals(UnoCardColor.Wild)).ToList().Count > 0) { return(true); } return(Hand.Where(x => (x.Type.Equals(card.Type) || x.Color.Equals(card.Color))).ToList().Count > 0); }
private void shuffle() { Random r = new Random(unchecked (Environment.TickCount * 31 + Thread.CurrentThread.ManagedThreadId)); List <UnoCard> toShuffle = cards; for (int n = toShuffle.Count - 1; n > 0; --n) { int k = r.Next(n + 1); UnoCard temp = toShuffle[k]; toShuffle[k] = toShuffle[n]; toShuffle[n] = temp; } }
public string GetAcceptableMatchesAsString(UnoCard toMatch) { string s = ""; List <UnoCard> acceptableCards = Hand.Where(x => (x.Type.Equals(toMatch.Type) || x.Color.Equals(toMatch.Color)) || x.Color.Equals(UnoCardColor.Wild)).ToList(); foreach (UnoCard card in acceptableCards) { if (card.Equals(acceptableCards.First())) { s += $"{card.ToString()},"; } else if (card.Equals(Hand.Last())) { s += $" and {card.ToString()}"; } else { s += $" {card.ToString()},"; } } return(s); }
public int GetFirstAcceptableMatch(UnoCard card) { List <UnoCard> playableCards = Hand.Where(x => (x.Type.Equals(card.Type) || x.Color.Equals(card.Color)) || x.Color.Equals(UnoCardColor.Wild)).ToList(); return(Hand.IndexOf(playableCards.First())); }