Advertisement
Rodunskiy

Untitled

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