using System; using System.Collections.Generic; using System.Drawing; using System.Reflection; internal class Program { static void Main(string[] args) { DeckCard card = new DeckCard(); Console.ReadKey(); } } enum Suit { Hearts, Diamonds, Clubs, Spades } enum Rank { Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten, Jack, Queen, King, Ace } class Dealer { private Player _player; private DeckCard _deckCard; public Dealer() { _player = new Player(); _deckCard = new DeckCard(); } public void ShowPlayerCard() { _player.ShowCards(); } public void XXX() { } } class Player { private List _cards; public Player() { _cards = new List(); } public void ShowCards() { Console.WriteLine("У игрока на руках:"); foreach (Card card in _cards) { Console.WriteLine(card); } } public void GetCard(Card card) { _cards.Add(card); } } class Card { public Card(Suit suit, Rank rank) { Suit = suit; Rank = rank; } public Suit Suit { get; private set; } public Rank Rank { get; private set; } public override string ToString() { string suitRussian = Suit switch { Suit.Diamonds => "Буби", Suit.Hearts => "Черви", Suit.Spades => "Пики", Suit.Clubs => "Крести" }; return $"{Rank} {suitRussian}"; } } class DeckCard { private static Random _random = new Random(); private List _cards = new List(); public DeckCard() { foreach(Suit suit in Enum.GetValues(typeof(Suit))) { foreach(Rank rank in Enum.GetValues(typeof(Rank))) { _cards.Add(new Card(suit, rank)); } } } public void Shuffle() { for (int i = _cards.Count - 1; i > 0; i--) { int index = _random.Next(i + 1); (_cards[i], _cards[index]) = (_cards[index], _cards[i]); } } public Card DealCard() { if (_cards.Count == 0) { throw new InvalidOperationException("Колода пуста"); } int lastIndex = _cards.Count - 1; Card card = _cards[lastIndex]; _cards.RemoveAt(lastIndex); return card; } }