W1thr

ООП-11

Jun 11th, 2022
1,264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.11 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace Homework11
  5. {
  6.     internal class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             Player player = new Player();
  11.             Deck deck = new Deck();
  12.  
  13.             Console.Write("Сколько карт взять: ");
  14.             int cardsCount = int.Parse(Console.ReadLine());
  15.  
  16.             deck.Fill(cardsCount);
  17.  
  18.             for (int i = 0; i < cardsCount; i++)
  19.             {
  20.                 Card card;
  21.                 deck.GiveCard(out card);
  22.                 player.TakeCard(card);
  23.             }
  24.  
  25.             player.ShowCards();
  26.         }
  27.     }
  28.  
  29.     class Card
  30.     {
  31.         private Random _random = new Random();
  32.         private string[] _suits = { "Hearts", "Diamonds", "Clubs", "Spades" };
  33.  
  34.         public int Value { get; private set; }
  35.         public string Suit { get; private set; }
  36.  
  37.         public Card()
  38.         {
  39.             Value = _random.Next(1, 11);
  40.             Suit = _suits[_random.Next(0, _suits.Length)];
  41.         }
  42.  
  43.         public Card(int value, string suit)
  44.         {
  45.             Value = value;
  46.             Suit = suit;
  47.         }
  48.  
  49.         public void ShowInfo()
  50.         {
  51.             Console.WriteLine($"|Suit: {Suit}|Value: {Value}|");
  52.         }
  53.     }
  54.  
  55.     class Deck
  56.     {
  57.         private List<Card> _cards = new List<Card>();
  58.         private Random _random = new Random();
  59.  
  60.         public void GiveCard(out Card card)
  61.         {
  62.             int cardNumber = _random.Next(_cards.Count - 1);
  63.  
  64.             card = _cards[cardNumber];
  65.             _cards.RemoveAt(cardNumber);
  66.         }
  67.  
  68.         public void Fill(int count)
  69.         {
  70.             for (int i = 0; i < count; i++)
  71.             {
  72.                 _cards.Add(new Card());
  73.             }
  74.         }
  75.     }
  76.  
  77.     class Player
  78.     {
  79.         private List<Card> _cards = new List<Card>();
  80.  
  81.         public void TakeCard(Card card)
  82.         {
  83.             _cards.Add(card);
  84.         }
  85.  
  86.         public void ShowCards()
  87.         {
  88.             foreach (var card in _cards)
  89.                 card.ShowInfo();
  90.         }
  91.     }
  92. }
  93.  
Advertisement
Add Comment
Please, Sign In to add comment