public Player StartGame() { CreatePlayers(); Shuffle(); Razdacha(); Dictionary <Player, Card> dic = new Dictionary <Player, Card>(); int maxCard = 0; Player winner = null; while (!Players.Any(a => a.Cards.Count == 36)) { foreach (Player i in Players) { i.Cards.Peek().PrintCard(); dic.Add(i, i.Cards.Pop()); } Console.WriteLine(""); foreach (var i in dic) { if ((int)i.Value.Nominal > maxCard) { maxCard = (int)i.Value.Nominal; winner = i.Key; } } winner.PrintInfo(); foreach (var i in dic) { Players[winner.Id].Cards.Push(i.Value); } maxCard = 0; winner = null; dic = new Dictionary <Player, Card>(); } return(Players.FirstOrDefault(x => x.Cards.Count == 36)); }