Advertisement
ranee

Untitled

Mar 17th, 2023
398
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.35 KB | None | 0 0
  1. using System;
  2.  
  3. namespace DeckOfCards
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             Desk deck = new Desk();
  10.             Player player = new Player();
  11.  
  12.             deck.Shuffle();
  13.             player.TakeCard(deck);
  14.             player.ShowCardInHand();
  15.         }
  16.     }
  17.  
  18.     class Card
  19.     {
  20.         private string _suitCard;
  21.         private string _nameCard;
  22.  
  23.         public Card(string suitCard, string nameCard)
  24.         {
  25.             _suitCard = suitCard;
  26.             _nameCard = nameCard;
  27.         }
  28.  
  29.         public void ShowInfoCard()
  30.         {
  31.             Console.WriteLine($"{_nameCard} {_suitCard}");
  32.         }
  33.     }
  34.  
  35.     class Desk
  36.     {
  37.         private List<Card> _cards;
  38.  
  39.         public Desk()
  40.         {
  41.             _cards = new List<Card>();
  42.             string[] suitsCard = { "Черви", "Крести", "Буби", "Пики" };
  43.             string[] namesCard = { "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "D", "K", "A" };
  44.  
  45.             for (int i = 0; i < suitsCard.Length; i++)
  46.             {
  47.                 for (int j = 0; j < namesCard.Length; j++)
  48.                 {
  49.                     _cards.Add(new Card(suitsCard[i], namesCard[j]));
  50.                 }
  51.             }
  52.         }
  53.  
  54.         public void Shuffle()
  55.         {
  56.             Random random= new Random();
  57.  
  58.             for (int i = 0; i < _cards.Count; i++)
  59.             {
  60.                 int j = random.Next(_cards.Count - i);
  61.                 Card temp = _cards[j];
  62.                 _cards[j] = _cards[i];
  63.                 _cards[i] = temp;
  64.             }
  65.         }
  66.  
  67.         public Card DrawCard()
  68.         {
  69.             if(_cards.Count == 0)
  70.             {
  71.                 return null;
  72.             }
  73.             else
  74.             {
  75.                 Card card = _cards[0];
  76.                 _cards.RemoveAt(0);
  77.                 return card;
  78.             }
  79.         }
  80.     }
  81.  
  82.     class Player
  83.     {
  84.         private List<Card> _inHand;
  85.  
  86.         public Player()
  87.         {
  88.             _inHand= new List<Card>();
  89.         }
  90.  
  91.         public void ShowCardInHand()
  92.         {
  93.             Console.WriteLine("Карты в руках:");
  94.  
  95.             foreach (Card card in _inHand)
  96.             {
  97.                 card.ShowInfoCard();
  98.             }
  99.         }
  100.        
  101.         public void TakeCard(Desk desk)
  102.         {
  103.             bool isWork = true;
  104.  
  105.             const string exit = "n";
  106.  
  107.             while (isWork)
  108.             {
  109.                 Console.Clear();
  110.                 Console.WriteLine("N - закончить раздачу.");
  111.                 string answer = Console.ReadLine();
  112.                
  113.                 if (answer.ToLower() == exit)
  114.                 {
  115.                     isWork = false;
  116.                 }
  117.                 else
  118.                 {
  119.                     Card card = desk.DrawCard();
  120.                    
  121.                     if (card == null)
  122.                     {
  123.                         Console.WriteLine("В колоде кончились карты");
  124.                         isWork = false;
  125.                     }
  126.                    
  127.                     _inHand.Add(card);
  128.                     Console.Write($"Ваша карта: ");
  129.                     card.ShowInfoCard();
  130.                     Console.ReadKey();
  131.                 }
  132.             }
  133.         }
  134.     }
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement