Exemplo n.º 1
0
        public void Save()
        {
            bool CorrectCommand = false;

            TurnSaved = false;

            while (!CorrectCommand)
            {
                string s = GetUserInput("Skriv hvad du vil gemme").ToLower();

                if (!yatzy.scoreboard.UpperSectionFinished())
                {
                    switch (s)
                    {
                    default:
                        Console.Beep();
                        throw new InvalidCommandException($"Du har ikke skrevet en korrekt kommando (du skrev '{s}')");

                    case "aces":
                        if (yatzy.scoreboard.scores["Aces"] == -1)
                        {
                            yatzy.scoreboard.scores["Aces"] = yatzy.ValueOfDots(1);
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt");
                            Console.Beep();
                        }
                        break;

                    case "twos":
                        if (yatzy.scoreboard.scores["Twos"] == -1)
                        {
                            yatzy.scoreboard.scores["Twos"] = yatzy.ValueOfDots(2);
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt");
                            Console.Beep();
                        }
                        break;

                    case "threes":
                        if (yatzy.scoreboard.scores["Threes"] == -1)
                        {
                            yatzy.scoreboard.scores["Threes"] = yatzy.ValueOfDots(3);
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt");
                            Console.Beep();
                        }
                        break;

                    case "fours":
                        if (yatzy.scoreboard.scores["Fours"] == -1)
                        {
                            yatzy.scoreboard.scores["Fours"] = yatzy.ValueOfDots(4);
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt");
                            Console.Beep();
                        }
                        break;

                    case "fives":
                        if (yatzy.scoreboard.scores["Fives"] == -1)
                        {
                            yatzy.scoreboard.scores["Fives"] = yatzy.ValueOfDots(5);
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt");
                            Console.Beep();
                        }
                        break;

                    case "sixes":
                        if (yatzy.scoreboard.scores["Sixes"] == -1)
                        {
                            yatzy.scoreboard.scores["Sixes"] = yatzy.ValueOfDots(6);
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt");
                            Console.Beep();
                        }
                        break;

                    case "help":
                        Console.ForegroundColor = ConsoleColor.Magenta;
                        Console.WriteLine("Mulige kommandoer: aces, twos, threes, fours, fives, sixes");
                        Console.ResetColor();
                        break;
                    }
                }
                else
                {
                    switch (s)
                    {
                    default:
                        Console.Beep();
                        throw new InvalidCommandException($"Du har ikke skrevet en korrekt kommando (du skrev '{s}')");

                    case "pair":
                        if (yatzy.scoreboard.scores["Pair"] == -1)
                        {
                            yatzy.scoreboard.scores["Pair"] = yatzy.OnePair();
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt.");
                            Console.Beep();
                        }
                        break;

                    case "two pairs":
                        if (yatzy.scoreboard.scores["Two Pair"] == -1)
                        {
                            yatzy.scoreboard.scores["Two Pair"] = yatzy.TwoPairs();
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt");
                            Console.Beep();
                        }
                        break;

                    case "three of a kind":
                        if (yatzy.scoreboard.scores["Three of a kind"] == -1)
                        {
                            yatzy.scoreboard.scores["Three of a kind"] = yatzy.ThreeOfAKind();
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt");
                            Console.Beep();
                        }
                        break;

                    case "four of a kind":
                        if (yatzy.scoreboard.scores["Four of a kind"] == -1)
                        {
                            yatzy.scoreboard.scores["Four of a kind"] = yatzy.FourOfAKind();
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt");
                            Console.Beep();
                        }
                        break;

                    case "full house":
                        if (yatzy.scoreboard.scores["Full House"] == -1)
                        {
                            yatzy.scoreboard.scores["Full House"] = yatzy.FullHouse();
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt");
                            Console.Beep();
                        }
                        break;

                    case "small straight":
                        if (yatzy.scoreboard.scores["Small Straight"] == -1)
                        {
                            yatzy.scoreboard.scores["Small Straight"] = yatzy.SmallStraight();
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt");
                            Console.Beep();
                        }
                        break;

                    case "large straight":
                        if (yatzy.scoreboard.scores["Large Straight"] == -1)
                        {
                            yatzy.scoreboard.scores["Large Straight"] = yatzy.LargeStraight();
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt");
                            Console.Beep();
                        }
                        break;

                    case "yatzy":
                        if (yatzy.scoreboard.scores["Yatzy"] == -1)
                        {
                            yatzy.scoreboard.scores["Yatzy"] = yatzy.Yatzy();
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt");
                            Console.Beep();
                        }
                        break;

                    case "chance":
                        if (yatzy.scoreboard.scores["Chance"] == -1)
                        {
                            yatzy.scoreboard.scores["Chance"] = yatzy.Chance();
                            CorrectCommand = true;
                            Console.WriteLine($"{s} er nu gemt");
                        }
                        else
                        {
                            Console.WriteLine($"{s} er allerede gemt");
                            Console.Beep();
                        }
                        break;

                    case "help":
                        Console.ForegroundColor = ConsoleColor.Magenta;
                        Console.WriteLine("Mulige kommandoer: pair, two pair, three of a kind, four of a kind, full house, small straight, large straight, yatzy, chance");
                        Console.ResetColor();
                        break;
                    }
                }
                TurnSaved = true;
            }
        }