Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace Homework41
- {
- class Program
- {
- static void Main(string[] args)
- {
- Player player = new Player();
- Deck deck = new Deck();
- Dealer dealer = new Dealer(deck, player);
- dealer.RequestCards();
- dealer.IssueCards();
- player.ShowAllCadrs();
- }
- }
- class Dealer
- {
- private Deck _deck;
- private Player _player;
- private int _desiredPlayerCards;
- public Dealer(Deck deck, Player player)
- {
- _deck = deck;
- _player = player;
- }
- private bool TryIssueCards()
- {
- return _deck.CardsCount >= _desiredPlayerCards;
- }
- public void IssueCards()
- {
- if (TryIssueCards())
- {
- List<Card> cards = new List<Card>();
- for (int i = 0; i < _desiredPlayerCards; i++)
- {
- cards.Add(_deck.GiveCard());
- }
- _player.AddCards(cards);
- }
- else
- {
- Console.WriteLine("\nНедостаточно карт в колоде.");
- }
- }
- public void RequestCards()
- {
- int desiredCards;
- Console.Write("Введите количество карт, которое хотите получить: ");
- while (int.TryParse(Console.ReadLine(), out desiredCards) == false && desiredCards > 0)
- {
- Console.Write("\n\nНекорректное количество карт. Пожалуйста, введите положительное число: ");
- }
- _desiredPlayerCards = desiredCards;
- }
- }
- class Player
- {
- private List<Card> _cards = new List<Card>();
- public void ShowAllCadrs()
- {
- Console.WriteLine("\nКарты игрока: \n");
- foreach (var card in _cards)
- {
- card.ShowInfo();
- }
- }
- public void AddCards(List<Card> cards)
- {
- if (cards.Count == 0)
- {
- Console.WriteLine("\nНевозможно выдать столько карт...");
- }
- else
- {
- _cards.AddRange(cards);
- }
- }
- }
- class Deck
- {
- private Stack<Card> _cards = new Stack<Card>();
- public Deck()
- {
- FillWithCards();
- CardsCount = _cards.Count;
- }
- public int CardsCount { get; private set; }
- private void FillWithCards()
- {
- foreach (CardSuit suit in Enum.GetValues(typeof(CardSuit)))
- {
- foreach (CardValue value in Enum.GetValues(typeof(CardValue)))
- {
- _cards.Push(new Card(suit, value));
- }
- }
- }
- public Card GiveCard()
- {
- if (_cards.Count == 0)
- {
- Console.WriteLine("\nКолода пуста, невозможно взять карту.");
- return null;
- }
- return _cards.Pop();
- }
- }
- class Card
- {
- private CardSuit _suit;
- private CardValue _value;
- public Card(CardSuit suit, CardValue value)
- {
- _suit = suit;
- _value = value;
- }
- public void ShowInfo()
- {
- Console.WriteLine($"Масть: {_suit}, значение: {_value}");
- }
- }
- public enum CardSuit
- {
- Hearts,
- Spades,
- Clubs,
- Diamonds
- }
- public enum CardValue
- {
- Six = 6,
- Seven,
- Eight,
- Nine,
- Ten,
- Jack,
- Queen,
- King,
- Ace
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment