Example #1
0
 public Player(IConfigurationSetter configuration, IStrategy strategy)
 {
     Strategy     = strategy;
     Message      = configuration.Message;
     Constant     = configuration.Constant;
     MinCards     = Constant.numberOfCards_1_;
     CardsOnHands = new List <Card>();
 }
Example #2
0
 public StrategyB(IConfigurationSetter configuration, IConsoleReadWrap consoleRead)
 {
     if (configuration == null || consoleRead == null)
     {
         throw new NullReferenceException(nameof(StrategyA));
     }
     _message     = configuration.Message;
     _consoleRead = consoleRead;
 }
Example #3
0
        //private ISecondaryInputProvider _inputProvider;
        //ISecondaryInputProvider inputProvider

        public HumanStrategy(IConfigurationSetter configuration, IConsoleReadWrap consoleRead)
        {
            if (configuration == null || consoleRead == null)
            {
                throw new NullReferenceException(nameof(HumanStrategy));
            }
            _message     = configuration.Message;
            _alert       = configuration.Alert;
            _consoleRead = consoleRead;
            //_inputProvider = inputProvider;
        }
Example #4
0
        public GameSetter(IConfigurationSetter languageSet, ISecondaryInputProvider inputProvider,
                          IPlayerFactory playerFactory, IStrategyFactory strategyFactory)
        {
            if (languageSet == null || playerFactory == null || strategyFactory == null || inputProvider == null)
            {
                throw new NullReferenceException(nameof(GameSetter));
            }

            LanguageSet     = languageSet;
            PlayerFactory   = playerFactory;
            StrategyFactory = strategyFactory;
            InputProvider   = inputProvider;

            GameType = inputProvider.ReturnTypeOfGame();
            if (GameType == 1)
            {
                CreatePlayersFor36CardGame();
            }

            if (GameType == 2)
            {
                CreatePlayersFor54CardGame();
            }
        }
Example #5
0
 public PlayerFactory(IConfigurationSetter configurationSetter)
 {
     ConfigurationSetter = configurationSetter;
 }
Example #6
0
        internal FoolGame36Cards(IConfigurationSetter languageSet, IDeck deck, IGameSetter gameSetter, IConsoleReadWrap comReadWrap, IUserIdetifier userIdetifier)
        {
            if (languageSet == null || deck == null || gameSetter == null || comReadWrap == null)
            {
                throw new NullReferenceException(nameof(Table));
            }

            _languageSet = languageSet;
            _deck        = deck;
            _gameSetter  = gameSetter;
            _comReadWrap = comReadWrap;

            _players = _gameSetter.Players;

            MinCards = _languageSet.Constant.numberOfCards_1_;
            string wantToContinue = _languageSet.Constant.WantToContinue_7_;
            string flag           = wantToContinue;

            SetTurnToPlayers();

            while (flag == wantToContinue)
            {
                Console.Clear();
                Console.WriteLine("{0}", _languageSet.Message.welcome_11_);                       //Welcome to DURAK game!!!
                Console.WriteLine("-----------------------------------------------------------------------------------------------");
                Console.WriteLine($"{_languageSet.Message.hello_13_} {userIdetifier.UserName}!"); //Hello
                Console.WriteLine("-----------------------------------------------------------------------------------------------");

                Console.WriteLine($"{_languageSet.Message.trumpCardIs_17_} {_deck.ShowTrumpCard()}"); //This time your Trump card is
                foreach (var player in _players)
                {
                    _deck.GiveCardFromDeck(MinCards, player); // Give 6 cards to every player
                }
                Console.WriteLine("-----------------------------------------------------------------------------------------------");


                while (_players[0].HowManyCardsOnHands() > 0 && _players[1].HowManyCardsOnHands() > 0)
                {
                    //tempdefence = null;
                    Console.WriteLine("-----------------------------------------------------------------------------------------------");
                    Console.WriteLine($"{_languageSet.Message.yourTurn_18_}");                                                                               //
                    _players[0].ShowOnHands();
                    Console.WriteLine($"{_languageSet.Message.thereIs_19_} {_players[1].HowManyCardsOnHands()} {_languageSet.Message.cardsInCpuHands_20_}"); //There is(are) XX card(s) in CPU hands
                                                                                                                                                             //CPU.ShowOnHands();
                    CardsOnTableAre();

                    Card Attack = player1.Attack(_cardsOnTable);
                    if (Attack != null)
                    {
                        player1.RemoveCardFromHands(Attack);
                        _cardsOnTable.Add(Attack);
                        Card defCard = player2.Defend(_cardsOnTable, Attack);
                        if (defCard != null)
                        {
                            player2.RemoveCardFromHands(defCard);
                            _cardsOnTable.Add(defCard);
                            CardsOnTableAre();
                        }
                        else // (tempdefence == null)
                        {
                            _deck.GiveCardFromDeck(player1.CardsToTake(), player1);
                            for (int i = 0; i <= _cardsOnTable.Count - 1; i++)
                            {
                                player2.AddCardToHands(_cardsOnTable[i]);
                            }
                            _cardsOnTable.Clear();
                            Console.WriteLine($"{_languageSet.Message.thereIs_19_} {_deck.HowManyCardsInDeck()} {_languageSet.Message.cardsInDeck_21_}"); //There is(are) XX card(s) in Deck
                        }
                    }
                    else
                    {
                        Console.WriteLine($"{_languageSet.Message.turnChanges_22_}"); //Turn changes
                        _deck.GiveCardFromDeck(player1.CardsToTake(), player1);
                        _deck.GiveCardFromDeck(player2.CardsToTake(), player2);
                        _cardsOnTable.Clear();
                        Console.WriteLine($"{_languageSet.Message.thereIs_19_} {_deck.HowManyCardsInDeck()} {_languageSet.Message.cardsInDeck_21_}"); //
                        Player tempPlayer = player1;
                        player1 = player2;
                        player2 = tempPlayer;
                    }
                }

                if (player1.HowManyCardsOnHands() == 0 && player2.HowManyCardsOnHands() == 0)
                {
                    Console.WriteLine("-----------------------------------------------------------------------------------------------");
                    Console.WriteLine($"{_languageSet.Message.drawThisTime_24_}"); //It is draw in this Game!!!!!!
                    Console.WriteLine("-----------------------------------------------------------------------------------------------");
                }
                else if (player1.HowManyCardsOnHands() == 0 && player2.HowManyCardsOnHands() > 0)
                {
                    Console.WriteLine("-----------------------------------------------------------------------------------------------");
                    Console.WriteLine($"{_languageSet.Message.congratulations_25_} {player1.PlayerName}, {_languageSet.Message.youAreWinner_26_}"); //Congratulations XX you are winner!!!!!!
                    Console.WriteLine("-----------------------------------------------------------------------------------------------");
                }
                else
                {
                    Console.WriteLine("-----------------------------------------------------------------------------------------------");
                    Console.WriteLine($"{player1.PlayerName}, {_languageSet.Message.youLoseThisGame_27_} "); //you lose this time
                    Console.WriteLine("-----------------------------------------------------------------------------------------------");
                }
                Console.WriteLine("-----------------------------------------------------------------------------------------------");
                Console.WriteLine($"--------------{_languageSet.Message.press_28_} {wantToContinue} {_languageSet.Message.toStartAgain_29_}-------------------------------------");
                //Press __ to start again or any button to EXIT
                flag = (Console.ReadLine())?.ToUpper();
            }
            _comReadWrap.ReturnExit();
        }
Example #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="languageSetter"></param>
        /// <param name="gamePicker"></param>


        public ICardGameRules Return36CardsFoolGame(IConfigurationSetter languageSet, IDeck deck,
                                                    IGameSetter gameSetter, IConsoleReadWrap consoleReadWrap, IUserIdetifier userIdetifier)
        {
            return(new FoolGame36Cards(languageSet, deck, gameSetter, consoleReadWrap, userIdetifier));
        }
Example #8
0
 public StrategyFactory(IConfigurationSetter configurationSetter, IConsoleReadWrap consoleRead)
 {
     _configurationSetter = configurationSetter;
     _consoleRead         = consoleRead;
 }
 public SecondaryInputProvider(IConfigurationSetter configurationSetter, IConsoleReadWrap consoleReadWrap)
 {
     _consoleReadWrap     = consoleReadWrap;
     _configurationSetter = configurationSetter;
 }