Advertisement
Rodunskiy

Untitled

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