예제 #1
0
파일: Program.cs 프로젝트: maximgridin/game
        public static void Main()
        {
            var playerCount = GameParts.ResolvePlayerCount();
            var players     = GameParts.ResolvePlayers(playerCount);
            var game        = new Game.Game(players);

            game.Start();
        }
예제 #2
0
파일: Game.cs 프로젝트: maximgridin/game
        public void Start()
        {
            while (true)
            {
                if (!players.Any())
                {
                    GameParts.Tie();
                }
                for (var index = 0; index < players.Count; index++)
                {
                    var player = players[index];
                    currentRound           += 1;
                    player.CountOfAttempts += 1;

                    if (player.CountOfAttempts == GameConstants.MaximumAttempts)
                    {
                        players.Remove(player);

                        continue;
                    }

                    if (player.CanMakeTurn)
                    {
                        var guess = player.MakeGuess();

                        if (guess == FruitBasket.Weight)
                        {
                            GameParts.Win(player);
                        }
                        else
                        {
                            player.RoundToSkip = GameHelper.CalculateRoundsToSkip(guess);
                        }
                    }
                    else
                    {
                        player.RoundToSkip -= 1;
                    }
                }
            }
        }