Advertisement
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);
- player.RequestCards();
- dealer.IssueCards();
- player.ShowAllCadrs();
- }
- }
- class Dealer
- {
- private Deck _deck;
- private Player _player;
- public Dealer(Deck deck, Player player)
- {
- _deck = deck;
- _player = player;
- }
- public bool TryIssueCards()
- {
- return _deck.GetCardsCount() >= _player.DesiredCards;
- }
- public void IssueCards()
- {
- if (TryIssueCards() == true)
- {
- List<Card> cards = new List<Card>();
- for (int i = 0; i < _player.DesiredCards; i++)
- {
- cards.Add(_deck.GetCard());
- }
- _player.GetNewCards(cards);
- }
- else
- {
- Console.WriteLine("\nНедостаточно карт в колоде.");
- }
- }
- }
- class Player
- {
- private List<Card> _cards = new List<Card>();
- public int DesiredCards { get; private set; }
- public void ShowAllCadrs()
- {
- Console.WriteLine("\nКарты игрока: \n");
- foreach (var card in _cards)
- {
- card.ShowInfo();
- }
- }
- public void GetNewCards(List<Card> cards)
- {
- if (cards.Count == 0)
- {
- Console.WriteLine("\nНевозможно выдать 0 карт...");
- }
- else
- {
- _cards.AddRange(cards);
- }
- }
- public void RequestCards()
- {
- int desiredCards;
- Console.Write("Введите количество карт, которое хотите получить: ");
- while (!int.TryParse(Console.ReadLine(), out desiredCards) && desiredCards > 0)
- {
- Console.Write("\n\nНекорректное количество карт. Пожалуйста, введите положительное число: ");
- }
- DesiredCards = desiredCards;
- }
- }
- class Deck
- {
- private Stack<Card> _cards = new Stack<Card>();
- public Deck()
- {
- foreach (CardSuit suit in Enum.GetValues(typeof(CardSuit)))
- {
- foreach (CardValue value in Enum.GetValues(typeof(CardValue)))
- {
- _cards.Push(new Card(suit, value));
- }
- }
- CurrentCardsCount = _cards.Count;
- }
- public int CurrentCardsCount { get; private set; }
- public void ShowInfo()
- {
- foreach (var card in _cards)
- {
- card.ShowInfo();
- }
- }
- public int GetCardsCount()
- {
- return _cards.Count;
- }
- public Card GetCard()
- {
- if (_cards.Count == 0)
- {
- Console.WriteLine("\nКолода пуста, невозможно взять карту.");
- return null;
- }
- else
- {
- CurrentCardsCount--;
- return _cards.Pop();
- }
- }
- public void ShowCurrentCardsCount()
- {
- Console.WriteLine($"\nТекущее кличество карт в колоде: {CurrentCardsCount}.");
- }
- }
- class Card
- {
- public Card(CardSuit suit, CardValue value)
- {
- Suit = suit;
- Value = value;
- }
- public CardSuit Suit { get; private set; }
- public CardValue Value { get; private set; }
- 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
Advertisement