Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Numerics;
- namespace DeckOfCards
- {
- class Program
- {
- static void Main(string[] args)
- {
- Deck deck = new Deck();
- Player player = new Player();
- Casino casino = new Casino();
- deck.Shuffle();
- casino.Run(deck, player);
- }
- }
- class Card
- {
- private string _suit;
- private string _name;
- public Card(string suit, string name)
- {
- _suit = suit;
- _name = name;
- }
- public void ShowInfoCard()
- {
- Console.Write($"{_name} {_suit} ");
- }
- }
- class Deck
- {
- private List<Card> _cards;
- public Deck()
- {
- _cards = new List<Card>();
- string[] suits = { "Черви", "Крести", "Буби", "Пики" };
- string[] names = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "D", "K", "A" };
- for (int i = 0; i < suits.Length; i++)
- {
- for (int j = 0; j < names.Length; j++)
- {
- _cards.Add(new Card(suits[i], names[j]));
- }
- }
- }
- public void Shuffle()
- {
- Random random = new Random();
- for (int i = 0; i < _cards.Count; i++)
- {
- int randomRange = random.Next(_cards.Count);
- Card temp = _cards[randomRange];
- _cards[randomRange] = _cards[i];
- _cards[i] = temp;
- }
- }
- public int TakeRemainingCards()
- {
- return _cards.Count;
- }
- public Card DrawCard()
- {
- Card card = _cards[0];
- _cards.Remove(card);
- return card;
- }
- }
- class Player
- {
- private List<Card> _cards;
- public Player()
- {
- _cards = new List<Card>();
- }
- public void ShowCardInHand()
- {
- Console.WriteLine("Карты в руках:");
- foreach (Card card in _cards)
- {
- card.ShowInfoCard();
- }
- }
- public void TakeCard(Card card)
- {
- _cards.Add(card);
- }
- }
- class Casino
- {
- private bool _isWork = true;
- private int _minminimumNumberCards = 1;
- const int numberForExit = 99;
- public void Run(Deck deck, Player player)
- {
- while (_isWork)
- {
- Console.Clear();
- if (deck.TakeRemainingCards() == 0)
- {
- _isWork = false;
- Console.WriteLine("Карты кончились.");
- player.ShowCardInHand();
- Console.ReadKey();
- }
- else
- {
- Console.WriteLine($"Карт доступно: {deck.TakeRemainingCards()}. Если карт достаточно набрать {numberForExit} ");
- Console.WriteLine("Сколько карт желаете взять: ");
- if (int.TryParse(Console.ReadLine(), out int result))
- {
- if (result >= _minminimumNumberCards && result <= deck.TakeRemainingCards())
- {
- for (int i = 0; i < result; i++)
- {
- Card card = deck.DrawCard();
- player.TakeCard(card);
- }
- }
- else if(result == numberForExit)
- {
- _isWork = false;
- player.ShowCardInHand();
- Console.ReadKey();
- }
- else
- {
- Console.WriteLine("Неверный ввод.");
- Console.ReadKey();
- }
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement