CCCPaste

Недоделка

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<Card> _cards;

public Player()
{
_cards = new List<Card>();
}

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<Card> _cards = new List<Card>();

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;
}
}