Advertisement
Rodunskiy

Untitled

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