Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Collections;
- namespace Programz
- {
- class Program
- {
- private static Random rnd = new Random();
- /*1) Напишите класс Player
- с полями:
- - int Points
- - string Name
- - private int _currentCard;
- и методами:
- - public void TakeCard(Stack<int> cardsDeck)
- В этом методе игрок берет карту из колоды
- - public int GetPlayerCard()
- Этот метод возвращает текущую карту игрока
- - public void AddPoint()
- Этот метод добавляет Point игроку*/
- static void Main ( string [] args )
- {
- Player Jonn = new Player ( "Jonn" );
- Player Leroy = new Player ( "Leroy" );
- List<int> cardsList = GetListOfCards ( 10 );
- Shuffle ( cardsList );
- Stack<int> deck = ListToStack ( cardsList );
- while ( deck.Count >= 2 )
- {
- Jonn.TakeCard ( deck );
- Leroy.TakeCard ( deck );
- CompareCards ( Jonn, Leroy );
- }
- Console.WriteLine ( CheckWin ( Jonn, Leroy ) );
- }
- private static void Shuffle ( List<int> cardsList )
- {
- int n = cardsList.Count;
- while ( n > 1 )
- {
- n--;
- int k = rnd.Next ( n + 1 );
- int value = cardsList [k];
- cardsList [k] = cardsList [n];
- cardsList [n] = value;
- }
- }
- private static List<int> GetListOfCards ( int countOfCards )
- {
- List<int> deck = new List<int> ();
- for ( int i = 1 ; i <= countOfCards ; i++ )
- {
- deck.Add ( i );
- }
- return deck;
- }
- private static Stack<int> ListToStack ( List<int> cardsList )
- {
- Stack<int> deck = new Stack<int> ();
- for ( int i = 0 ; i < cardsList.Count ; i++ )
- {
- deck.Push ( cardsList [i] );
- }
- return deck;
- }
- private static void CompareCards ( Player playerA, Player playerB )
- {
- int cardA = playerA.GetPlayerCard ();
- int cardB = playerB.GetPlayerCard ();
- if ( cardA > cardB )
- {
- playerA.AddPoint ();
- }
- else if ( cardA < cardB )
- {
- playerB.AddPoint ();
- }
- Console.WriteLine ( " Счет: {0} - {1} очков | {2} - {3} очков", playerA.Name, playerA.Points, playerB.Name, playerB.Points );
- }
- private static string CheckWin ( Player playerA, Player playerB )
- {
- return playerA.Points > playerB.Points ? "Победил " + playerA.Name : playerB.Points > playerA.Points ? "Победил " + playerB.Name : "Ничья";
- }
- }
- class Player
- {
- public int Points=0;
- public string Name;
- private int _currentCard;
- public Player ( string name )
- {
- Name = name;
- }
- public void TakeCard ( Stack<int> cardsDeck )
- {
- _currentCard = cardsDeck.Pop ();
- Console.WriteLine ( "Игрок {0} берет карту {1}", Name, _currentCard );
- }
- public int GetPlayerCard ()
- {
- return _currentCard;
- }
- public void AddPoint ()
- {
- Points += 1;
- Console.WriteLine ( "Игрок {0} получает очко противника :)", Name );
- }
- }
- }
Add Comment
Please, Sign In to add comment