private void CreateDeck() { for (int i = 0; i < Enum.GetNames(typeof(Ranks)).Length; i++) { for (int j = 0; j < Enum.GetNames(typeof(Suits)).Length; j++) { MainDeck.Push(new Card((Suits)j, (Ranks)i)); } } }
private void Shuffle() // перемешивает карты в MainDeck { Random rnd = new Random(); List <Card> list = new List <Card>(); list = MainDeck.OrderBy(item => rnd.Next()).ToList(); MainDeck.Clear(); foreach (var card in list) { MainDeck.Push(card); } }
/// <summary> /// Сбрасывает одну карту из основной колоды в сброшенную. Если основная колода пуста перекладывает все карты из сброшенной калоды в основную. /// </summary> public void FoldCard() { if (MainDeck.Count > 0) // если в колоде есть карты, то сбрасываем одну { Card temp = MainDeck.Pop(); temp.FaceUp = true; DumpedDeck.Push(temp); } else // иначе(колода пуста) перемещаем все сброшенные карты назад в колоду { Card temp; while (DumpedDeck.Count > 0) { temp = DumpedDeck.Pop(); temp.FaceUp = false; MainDeck.Push(temp); } } }