Ejemplo n.º 1
0
 public void AddRoll(Roll roll)
 {
     _rolls.Add(roll);
 }
Ejemplo n.º 2
0
        // this is the master which asks all the questions and keeps track of the answers and decides what to do with it aka the main menu
        public void Game()
        {
            Console.WriteLine("---------- Welcome to Yatzy ----------");
            Console.WriteLine("Please enter your name");
            string Username = Console.ReadLine();

            while (GameRunning)
            {
                if (hasRemainingTries() == false)
                {
                    Console.WriteLine("Which outcome to choose?");

                    var outcomeIndex = Console.ReadLine()[0] - 'a';
                    if (outcomeIndex >= 0 && outcomeIndex < Roll.Outcomes.Count)
                    {
                        Roll.UseOutcome(outcomeIndex);
                        tries = totaltriesmain;
                    }
                    Console.Clear();
                    continue;
                }
                else
                {
                    Console.WriteLine("Please choose an option:");
                    Console.WriteLine("1.) for Rolling all 6 dices");
                    Console.WriteLine("2.) for settings");
                    Console.WriteLine("3.) for scoreboard");
                    Console.WriteLine("4.) for quitting the game");
                }
                if (!_hand.FirstRound && tries != totaltriesmain)
                {
                    Console.WriteLine("5.) Choose the dices you want to reroll with ',' symbol between");
                    Console.WriteLine("6.) End turn");
                }

                if (UpScoreboard.Rules.All(r => r.Used) && Scoreboard.Rules.All(r => r.Used))
                {
                    Console.Clear();
                    Console.WriteLine("You have finished the game");
                    Console.WriteLine("===============");
                    UpScoreboard.Print();
                    Console.WriteLine("===============");
                    Scoreboard.Print();
                    Console.WriteLine("===============");
                    Totalscore = UpScoreboard.Sum() + Scoreboard.Sum();
                    if (UpScoreboard.Sum() >= 63)
                    {
                        Totalscore += 50;
                    }
                    Console.WriteLine("Total score: " + Totalscore);
                    GameRunning = false;
                }

                if (!int.TryParse(Console.ReadLine(), out UserChoice))
                {
                    Console.WriteLine("Sorry that was not a valid input. Try again");
                    continue;
                }
                else
                {
                    switch (UserChoice)
                    {
                    case 1:
                        tries--;
                        Console.Clear();
                        Console.WriteLine("You rolled:");
                        _hand.RerollAll();
                        PrintOutcomes();
                        Console.WriteLine("Remaining rolls: " + tries);
                        Console.WriteLine();
                        break;

                    case 2:
                        Console.Clear();
                        new Settings();
                        tries = Settings.totaltries;
                        _hand.CreateDice();

                        break;

                    case 3:
                        Console.Clear();
                        Console.WriteLine("Scoreboard: " + Username);
                        Console.WriteLine("===============");
                        Console.WriteLine("Upper Scoreboard: ");
                        if (UpScoreboard.Rules.All(r => r.Used))
                        {
                            UpScoreboard.Print();
                            Console.WriteLine("===============");
                            Console.WriteLine("Lower Scoreboard: ");
                            Scoreboard.Print();
                            Totalscore = UpScoreboard.Sum() + Scoreboard.Sum();
                            if (UpScoreboard.Sum() >= 63)
                            {
                                Totalscore += 50;
                            }
                            Console.WriteLine("===============");
                            Console.WriteLine("Total score: " + Totalscore);
                        }
                        else
                        {
                            UpScoreboard.Print();
                        }
                        Console.WriteLine("===============");
                        break;

                    case 4:
                        GameRunning = false;
                        Console.WriteLine("Thx for playing byebye - enter to quit");
                        break;

                    case 5:
                        if (tries != totaltriesmain)
                        {
                            tries--;
                            _hand.RerollDices(AskUserForDices());
                            PrintOutcomes();
                        }
                        break;

                    case 6:
                        if (tries != totaltriesmain)
                        {
                            tries = 0;
                        }
                        break;

                    default:
                        break;
                    }
                }
            }

            Console.ReadLine();
        }