Advertisement
Rodunskiy

Untitled

Aug 8th, 2023
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.12 KB | None | 0 0
  1. class Program
  2. {
  3.     static void Main(string[] args)
  4.     {
  5.         GameTable gameTable = new GameTable();
  6.  
  7.         gameTable.Work();
  8.     }
  9. }
  10.  
  11. class GameTable
  12. {
  13.     private Deck _deck = new Deck();
  14.     private Player _player = new Player();
  15.  
  16.     public void Work()
  17.     {
  18.         const string TakeCardCommand = "1";
  19.         const string StopTakeCardCommand = "2";
  20.         const string ExitCommand = "3";
  21.  
  22.         string userInput;
  23.         bool isWorking = true;
  24.  
  25.         while (isWorking)
  26.         {
  27.             Console.Clear();
  28.             Console.WriteLine($"{TakeCardCommand})Взять карту.\n{StopTakeCardCommand})Закончить брать карты и вывести информацию о них.\n{ExitCommand})Выйти из программы.");
  29.             userInput = Console.ReadLine();
  30.  
  31.             switch (userInput)
  32.             {
  33.                 case TakeCardCommand:
  34.                     TransferCard(_player);
  35.                     break;
  36.  
  37.                 case StopTakeCardCommand:
  38.                     _player.ShowCards();
  39.                     break;
  40.  
  41.                 case ExitCommand:
  42.                     isWorking = false;
  43.                     break;
  44.             }
  45.         }
  46.     }
  47.  
  48.     public void TransferCard(Player player)
  49.     {
  50.         _deck.Shuffle();
  51.  
  52.         Card card = _deck.GiveCard();
  53.  
  54.         player.TakeCard(card);
  55.     }
  56. }
  57.  
  58. class Player
  59. {
  60.     private List<Card> _cardsInHand = new List<Card> ();
  61.  
  62.     public void TakeCard(Card card)
  63.     {
  64.         if (card != null)
  65.         {
  66.             _cardsInHand.Add(card);
  67.         }
  68.     }
  69.  
  70.     public void ShowCards()
  71.     {
  72.         foreach (Card card in _cardsInHand)
  73.         {
  74.             Console.WriteLine($"Карта:{card.Number}");
  75.         }
  76.  
  77.         Console.ReadKey();
  78.         Console.WriteLine("Нажмите на любую клавишу.");
  79.     }
  80. }
  81.  
  82. class Deck
  83. {
  84.     private Random _random = new Random();
  85.  
  86.     private List<Card> _cards;
  87.  
  88.     public Deck()
  89.     {
  90.         _cards = new List<Card>();
  91.  
  92.         CreateCards();
  93.     }
  94.  
  95.     private void CreateCards()
  96.     {
  97.         int maxCards = 7;
  98.  
  99.         for (int i = 1; i < maxCards; i++)
  100.         {
  101.             _cards.Add(new Card(i));
  102.         }
  103.     }
  104.  
  105.     public void Shuffle()
  106.     {
  107.         for (int i = 0; i < _cards.Count; i++)
  108.         {
  109.             int randomNumber = _random.Next(_cards.Count);
  110.             Card temporaryNumber = _cards[randomNumber];
  111.             _cards[randomNumber] = _cards[i];
  112.             _cards[i] = temporaryNumber;
  113.         }
  114.     }
  115.  
  116.     public Card GiveCard()
  117.     {
  118.         Card card = null;
  119.         int randomIndex;
  120.  
  121.         randomIndex = _random.Next(_cards.Count);
  122.  
  123.         if (_cards.Count == 0)
  124.         {
  125.             Console.WriteLine("Карты закончились");
  126.             Console.ReadKey();
  127.         }
  128.         else
  129.         {
  130.             card = _cards[randomIndex];
  131.             _cards.Remove(card);
  132.         }
  133.  
  134.         return card;
  135.     }
  136. }
  137.  
  138. class Card
  139. {
  140.     public Card(int number)
  141.     {
  142.         Number = number;
  143.     }
  144.  
  145.     public int Number { get; private set; }
  146. }
  147.  
  148.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement