コード例 #1
0
ファイル: GameLoader.cs プロジェクト: CheSNik/FoolGame
        /// <summary>
        /// If user Identified in UserIdetifier class, than GamePicker loads games and Save choice to the Game linked with User,
        /// if New User, than Game remains null.
        /// </summary>
        /// <param name="inputProvider"></param>
        /// <param name="userIdetifier"></param>
        /// <param name="dbManager"></param>
        public GameLoader(ISecondaryInputProvider inputProvider, IUserIdetifier userIdetifier, IDBManager dbManager)
        {
            // DB manager load GameNames from DB linked with Name: GameType, Deck, Players
            //DBManager.load => returns List<Game>
            _inputProvider = inputProvider;
            _dbManager     = dbManager;
            _userIdetifier = userIdetifier;


            Console.WriteLine("0: Play New Game");
            //DBManager return List<Game> _gameList; _gameList = gameList
            for (int i = 1; i <= _gameList.Count; i++)
            {
                Console.WriteLine($"{i}: {_gameList[i - 1]}");
            }

            GameNum = ReturnUsersChoice();
            if (GameNum > 1 && GameNum < _gameList.Count)
            {
                //Game = DBManager.Load(_gameList[GameType];
                Log.Information($"Creater List of available saved games, in {nameof(GameLoader)}");
                //DB Creates new entity with This name in DB
            }
        }
コード例 #2
0
ファイル: FoolGame36Cards.cs プロジェクト: CheSNik/FoolGame
        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();
        }
コード例 #3
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));
        }