kisame1313

Утр. лекция 28.07

Jul 28th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.02 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Collections;
  4.  
  5. namespace Programz
  6. {
  7.     class Program
  8.     {
  9.  
  10.         private static Random rnd = new Random();
  11.         /*1)    Напишите класс Player
  12. с полями:
  13.     - int Points
  14.     - string Name
  15.     - private int _currentCard;
  16. и методами:
  17.     - public void TakeCard(Stack<int> cardsDeck)
  18.     В этом методе игрок берет карту из колоды
  19.     - public int GetPlayerCard()
  20.     Этот метод возвращает текущую карту игрока
  21.     - public void AddPoint()
  22.     Этот метод добавляет Point игроку*/
  23.  
  24.         static void Main ( string [] args )
  25.         {
  26.             Player Jonn = new Player ( "Jonn" );
  27.             Player Leroy = new Player ( "Leroy" );
  28.  
  29.             List<int> cardsList = GetListOfCards ( 10 );
  30.             Shuffle ( cardsList );
  31.             Stack<int> deck = ListToStack ( cardsList );
  32.  
  33.             while ( deck.Count >= 2 )
  34.             {
  35.                 Jonn.TakeCard ( deck );
  36.                 Leroy.TakeCard ( deck );
  37.                 CompareCards ( Jonn, Leroy );
  38.             }
  39.  
  40.             Console.WriteLine ( CheckWin ( Jonn, Leroy ) );
  41.  
  42.         }
  43.  
  44.         private static void Shuffle ( List<int> cardsList )
  45.         {
  46.             int n = cardsList.Count;
  47.  
  48.             while ( n > 1 )
  49.             {
  50.                 n--;
  51.                 int k = rnd.Next ( n + 1 );
  52.                 int value = cardsList [k];
  53.                 cardsList [k] = cardsList [n];
  54.                 cardsList [n] = value;
  55.             }
  56.  
  57.         }
  58.  
  59.         private static List<int> GetListOfCards ( int countOfCards )
  60.         {
  61.             List<int> deck = new List<int> ();
  62.  
  63.             for ( int i = 1 ; i <= countOfCards ; i++ )
  64.             {
  65.                 deck.Add ( i );
  66.             }
  67.  
  68.             return deck;
  69.         }
  70.  
  71.         private static Stack<int> ListToStack ( List<int> cardsList )
  72.         {
  73.             Stack<int> deck = new Stack<int> ();
  74.  
  75.             for ( int i = 0 ; i < cardsList.Count ; i++ )
  76.             {
  77.                 deck.Push ( cardsList [i] );
  78.             }
  79.  
  80.             return deck;
  81.         }
  82.  
  83.         private static void CompareCards ( Player playerA, Player playerB )
  84.         {
  85.             int cardA = playerA.GetPlayerCard ();
  86.             int cardB = playerB.GetPlayerCard ();
  87.  
  88.             if ( cardA > cardB )
  89.             {
  90.                 playerA.AddPoint ();
  91.             }
  92.             else if ( cardA < cardB )
  93.             {
  94.                 playerB.AddPoint ();
  95.             }
  96.  
  97.             Console.WriteLine ( " Счет: {0} - {1} очков | {2} - {3} очков", playerA.Name, playerA.Points, playerB.Name, playerB.Points );
  98.         }
  99.  
  100.         private static string CheckWin ( Player playerA, Player playerB )
  101.         {
  102.  
  103.             return playerA.Points > playerB.Points ? "Победил " + playerA.Name : playerB.Points > playerA.Points ? "Победил " + playerB.Name : "Ничья";
  104.  
  105.         }
  106.     }
  107.  
  108.     class Player
  109.     {
  110.         public int Points=0;
  111.         public string Name;
  112.         private int _currentCard;
  113.  
  114.         public Player ( string name )
  115.         {
  116.             Name = name;
  117.         }
  118.  
  119.         public void TakeCard ( Stack<int> cardsDeck )
  120.         {
  121.             _currentCard = cardsDeck.Pop ();
  122.             Console.WriteLine ( "Игрок {0} берет карту {1}", Name, _currentCard );
  123.         }
  124.  
  125.         public int GetPlayerCard ()
  126.         {
  127.             return _currentCard;
  128.         }
  129.  
  130.         public void AddPoint ()
  131.         {
  132.             Points += 1;
  133.             Console.WriteLine ( "Игрок {0} получает очко противника :)", Name );
  134.         }
  135.     }
  136. }
Add Comment
Please, Sign In to add comment