public UnoGame(IDeck deck) { _tableDeck = new TableDeck(); _deck = deck; _cardRules = _deck.GetCardRules(); _playersInGame = new List<Player>(); _currentPlayersTurn = 0; }
public void DealCards(List<Player> players, ITableDeck tableDeck) { for (var i = 0; i < 7; i++) { foreach (var player in players) { if(!DealCard(player)) return; } } tableDeck.PutCard(CurrentDeck[0]); CurrentDeck.RemoveAt(0); }
private void Restock(ITableDeck tableDeck) { while (tableDeck.CardsOnTable.Count > 0) { CurrentDeck.Add(tableDeck.CardsOnTable[0]); tableDeck.CardsOnTable.RemoveAt(0); } }
public void Shuffle(ITableDeck tableDeck) { Restock(tableDeck); int dots; int n = CurrentDeck.Count; Console.Write("\rShuffling deck"); while (n > 1) { dots = Math.Abs(n - CurrentDeck.Count); Console.Write("\rShuffling deck"); do { Console.Write("."); dots-= 2; } while (dots > 0); Thread.Sleep(30); n--; int k = rng.Next(n + 1); var value = CurrentDeck[k]; CurrentDeck[k] = CurrentDeck[n]; CurrentDeck[n] = value; } Console.Write("\n"); }