Advertisement
Suslick

Test_39

Jan 4th, 2025
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.74 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace ConsoleApp1
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             const string CommandAddCards = "1";
  11.             const string CommandShowCards = "2";
  12.             const string CommandExit = "3";
  13.  
  14.             Deck deck = new Deck();
  15.  
  16.             Dealer dealer = new Dealer(deck);
  17.  
  18.             Player player = new Player("Иван");
  19.  
  20.             bool isWork = true;
  21.             string userInput;
  22.  
  23.             while (isWork)
  24.             {
  25.                 Console.WriteLine($"{CommandAddCards} - Взять карту.\n" +
  26.                     $"{CommandShowCards} - Показать карты.\n" +
  27.                     $"{CommandExit} - Выход.");
  28.  
  29.                 Console.WriteLine("Введите команду...");
  30.                 userInput = Console.ReadLine();
  31.  
  32.                 Console.Clear();
  33.  
  34.                 switch (userInput)
  35.                 {
  36.                     case CommandAddCards:
  37.                         dealer.GiveCard(player);
  38.                         break;
  39.  
  40.                     case CommandShowCards:
  41.                         player.ShowCards();
  42.                         break;
  43.  
  44.                     case CommandExit:
  45.                         isWork = false;
  46.                         break;
  47.  
  48.                     default:
  49.                         Console.WriteLine("Нет такой команды!!");
  50.                         break;
  51.                 }
  52.             }
  53.         }
  54.     }
  55.  
  56.     class Card
  57.     {
  58.         public Card(char suit, string name)
  59.         {
  60.             Suit = suit;
  61.             Name = name;
  62.         }
  63.  
  64.         public char Suit { get; private set; }
  65.  
  66.         public string Name { get; private set; }
  67.     }
  68.  
  69.     class Deck
  70.     {
  71.         private List<Card> _cards;
  72.  
  73.         public Deck()
  74.         {
  75.             _cards = CreateCards();
  76.         }
  77.  
  78.         public bool TryGiveCard(out Card card)
  79.         {
  80.             card = null;
  81.  
  82.             if (_cards.Count != 0)
  83.             {
  84.                 card = _cards[0];
  85.  
  86.                 _cards.Remove(card);
  87.  
  88.                 return true;
  89.             }
  90.  
  91.             return false;
  92.         }
  93.  
  94.         private List<Card> CreateCards()
  95.         {
  96.             List<Card> cards = new List<Card>();
  97.  
  98.             string[] names = new string[] { "6", "7", "8", "9", "10", "J", "Q", "K", "T" };
  99.             char[] suit = new char[] { '♠', '♥', '♦', '♣' };
  100.  
  101.             for (int i = 0; i < names.Length; i++)
  102.             {
  103.                 for (int j = 0; j < suit.Length; j++)
  104.                 {
  105.                     cards.Add(new Card(suit[j], names[i]));
  106.                 }
  107.             }
  108.  
  109.             Shuffle(cards);
  110.  
  111.             return cards;
  112.         }
  113.  
  114.         private void Shuffle(List<Card> cards)
  115.         {
  116.             Random random = new Random();
  117.  
  118.             int maxNumber = cards.Count;
  119.             int minNumber = 0;
  120.  
  121.             for (int i = 0; i < cards.Count; i++)
  122.             {
  123.                 int randomNumber = random.Next(minNumber, maxNumber);
  124.  
  125.                 var buffer = cards[i];
  126.                 cards[i] = cards[randomNumber];
  127.                 cards[randomNumber] = buffer;
  128.             }
  129.         }
  130.     }
  131.  
  132.     class Player
  133.     {
  134.         private List<Card> _cards;
  135.  
  136.         public Player(string name)
  137.         {
  138.             Name = name;
  139.  
  140.             _cards = new List<Card>();
  141.         }
  142.  
  143.         public string Name { get; private set; }
  144.  
  145.         public void ShowCards()
  146.         {
  147.             for (int i = 0; i < _cards.Count; i++)
  148.             {
  149.                 Console.WriteLine(i + " " + _cards[i].Name + " " + _cards[i].Suit);
  150.             }
  151.         }
  152.  
  153.         public void AddCard(Card card)
  154.         {
  155.             _cards.Add(card);
  156.         }
  157.     }
  158.  
  159.     class Dealer
  160.     {
  161.         private Deck _deck;
  162.  
  163.         public Dealer(Deck deck)
  164.         {
  165.             _deck = deck;
  166.         }
  167.  
  168.         public void GiveCard(Player player)
  169.         {
  170.             Console.WriteLine($"Сколько карт {player.Name.ToUpper()} возьмете!");
  171.  
  172.             if (int.TryParse(Console.ReadLine(), out int countCard))
  173.             {
  174.                 for (int i = 0; i < countCard; i++)
  175.                 {
  176.                     if (_deck.TryGiveCard(out Card card))
  177.                     {
  178.                         player.AddCard(card);
  179.                     }
  180.                     else
  181.                     {
  182.                         Console.WriteLine("Карты закончились!!");
  183.                         break;
  184.                     }
  185.                 }
  186.             }
  187.             else
  188.             {
  189.                 Console.WriteLine("Нет такого числа!");
  190.             }
  191.         }
  192.     }
  193. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement