Advertisement
Rodunskiy

Untitled

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