Exemple #1
0
        public void StartGame()
        {
            while (true)
            {
                CreateAllCategoriesAndQuestion createAllCategoriesAndQuestion = new CreateAllCategoriesAndQuestion();
                var listofListsWithQuestionsFromEachCategory = createAllCategoriesAndQuestion.CreateListsToQuestionOfEachCategory();
                Items = new List <Category>();
                Console.WriteLine("Przed Tobą 12 pytań z różnych kategorii.\r\n");

                ShowAndDeleteQuestionAndAnswersService showandDeleteQuestionAndAnswersService = new ShowAndDeleteQuestionAndAnswersService();
                CheckUserAnswer checkUserAnswer = new CheckUserAnswer();
                int             goodAnswers     = 0;
                bool            gameOver        = false;
                OpenCategory();

                for (int i = 0; i < 12; i++)
                {
                    Console.WriteLine("Oto dostępne kategorie w QuizWeek3ie: ");
                    var listOfCategories = ShowItems();
                    Console.Write("Podaj numer kategorii, który wybierasz: ");
                    int chosenCategory;
                    Int32.TryParse(Console.ReadLine(), out chosenCategory);

                    if (chosenCategory > 0 && chosenCategory <= listOfCategories.Count)
                    {
                        // Przekazujemy listę z pytaniami z kategorii, którą wybrał użytkownik. Indeks takiej listy na liście
                        // z listami pytań ze wszystkimi kategorii to numer kategorii (podany przez użytkownika) minus 1.
                        var helpObject = showandDeleteQuestionAndAnswersService.ShowQuestionAndAnswerOfCategory(listofListsWithQuestionsFromEachCategory[chosenCategory - 1]);
                        gameOver = checkUserAnswer.CheckUserAnswerMethod(helpObject.GoodAnswer);
                        showandDeleteQuestionAndAnswersService.DeleteShowedQuestion(listofListsWithQuestionsFromEachCategory[chosenCategory - 1], helpObject.Question);
                        if (gameOver == true)
                        {
                            Console.WriteLine($"\r\nDziękujemy za grę. Odpowiedziałeś/aś dobrze na {goodAnswers} z 12 pytań.");
                            break;
                        }
                        goodAnswers++;
                        // Jeśli nie ma już pytań z danej kategorii, usuwamy ją z wyświetlania.
                        if (listofListsWithQuestionsFromEachCategory[chosenCategory - 1].Count == 0)
                        {
                            foreach (var item in listOfCategories)
                            {
                                if (item.Id - 1 == listofListsWithQuestionsFromEachCategory.IndexOf(listofListsWithQuestionsFromEachCategory[chosenCategory - 1]))
                                {
                                    Console.WriteLine($"\r\nNie możesz już odpowiadać na pytania z kategorii: {item.Name}\r\n");
                                    DeleteCat(item.Id);
                                    listofListsWithQuestionsFromEachCategory[chosenCategory - 1].Add(new QuestionAndAnwers());
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine("Podałeś zły numer kategorii. Wybierz poprawny");
                        i--;
                    }
                }
                if (goodAnswers == 12)
                {
                    Console.WriteLine("\r\nGratulacje!!! Odpowiedziałeś/aś na wszystkie pytania poprawnie.");
                }

                Console.Write("Chcesz zagrać jeszcze raz? Jeśli tak, wpisz 't', jeśli nie, wpisz 'n': ");
                char odp = Char.Parse(Console.ReadLine());
                if (odp == 't')
                {
                    Console.Clear();
                    continue;
                }
                else
                {
                    break;
                }
            }
        }
        public int StartGame()
        {
            int userScoreFromGame = 0;

            while (true)
            {
                CreateAllCategoriesAndQuestion createAllCategoriesAndQuestion = new CreateAllCategoriesAndQuestion();
                var listofListsWithQuestionsFromEachCategory = createAllCategoriesAndQuestion.CreateListsToQuestionOfEachCategory();
                Items = new List <Category>();
                Console.WriteLine("Przed Tobą 12 pytań z różnych kategorii.\r\n");
                Console.WriteLine("UWAGA!!! Na odpowiedź na poszczególne pytanie masz 10 sekund. Jeśli przekroczysz ten czas to za dane pytanie otrzymasz minusowe punkty.");

                ShowAndDeleteQuestionAndAnswersService showandDeleteQuestionAndAnswersService = new ShowAndDeleteQuestionAndAnswersService();
                CheckUserAnswer           checkUserAnswer           = new CheckUserAnswer();
                AmoutOfUserPointsFromGame amoutOfUserPointsFromGame = new AmoutOfUserPointsFromGame();
                int  goodAnswers = 0;
                bool gameOver    = false;
                OpenCategory();

                for (int i = 0; i < 12; i++)
                {
                    Console.WriteLine("Oto dostępne kategorie w QuizWeek3ie: ");
                    var listOfCategories = ShowItems();
                    Console.Write("Podaj numer kategorii, który wybierasz: ");
                    int chosenCategory;
                    Int32.TryParse(Console.ReadLine(), out chosenCategory);

                    if (chosenCategory > 0 && chosenCategory <= listOfCategories.Count)
                    {
                        // Przekazujemy listę z pytaniami z kategorii, którą wybrał użytkownik. Indeks takiej listy na liście
                        // z listami pytań ze wszystkimi kategorii to numer kategorii (podany przez użytkownika) minus 1.
                        var helpObject    = showandDeleteQuestionAndAnswersService.ShowQuestionAndAnswerOfCategory(listofListsWithQuestionsFromEachCategory[chosenCategory - 1]);
                        var choiceAndTime = amoutOfUserPointsFromGame.CountingTime();
                        gameOver = checkUserAnswer.CheckUserAnswerMethod(helpObject.GoodAnswer, choiceAndTime.Choice);
                        showandDeleteQuestionAndAnswersService.DeleteShowedQuestion(listofListsWithQuestionsFromEachCategory[chosenCategory - 1], helpObject.Question);

                        if (gameOver == true)
                        {
                            Console.WriteLine($"\r\nDziękujemy za grę. Odpowiedziałeś/aś dobrze na {goodAnswers} z 12 pytań.");
                            userScoreFromGame = amoutOfUserPointsFromGame.ReturnAllPoints();
                            Console.WriteLine($"Zdobyłeś {userScoreFromGame} punktów. Gratulacje. Twój wynik został zapisany na tablicy wyników.\t\n");
                            break;
                        }
                        var points = amoutOfUserPointsFromGame.ChangeTimeToPoints(choiceAndTime.TimeToAnswer);
                        Console.WriteLine($"Za to pytanie otrzymujesz {points} punktów.\r\n");
                        goodAnswers++;
                        // Jeśli nie ma już pytań z danej kategorii, usuwamy ją z wyświetlania.
                        if (listofListsWithQuestionsFromEachCategory[chosenCategory - 1].Count == 0)
                        {
                            foreach (var item in listOfCategories)
                            {
                                if (item.Id - 1 == listofListsWithQuestionsFromEachCategory.IndexOf(listofListsWithQuestionsFromEachCategory[chosenCategory - 1]))
                                {
                                    Console.WriteLine($"\r\nNie możesz już odpowiadać na pytania z kategorii: {item.Name}\r\n");
                                    DeleteCat(item.Id);
                                    listofListsWithQuestionsFromEachCategory[chosenCategory - 1].Add(new QuestionAndAnwers());
                                    break;
                                }
                            }
                        }
                    }
                    else
                    {
                        Console.WriteLine("Podałeś zły numer kategorii. Wybierz poprawny");
                        i--;
                    }
                }
                if (goodAnswers == 12)
                {
                    Console.WriteLine("\r\nGratulacje!!! Odpowiedziałeś/aś na wszystkie pytania poprawnie.");
                    userScoreFromGame = amoutOfUserPointsFromGame.ReturnAllPoints();
                    Console.WriteLine($"Zdobyłeś {userScoreFromGame} punktów. Gratulacje. Twój wynik został zapisany na tablicy wyników.\t\n");
                }

                Console.Write("Chcesz zagrać jeszcze raz? Jeśli tak, wpisz 't', jeśli nie, wpisz 'n': ");
                char odp = Char.Parse(Console.ReadLine());
                if (odp == 't')
                {
                    Console.Clear();
                    continue;
                }
                else
                {
                    break;
                }
            }
            return(userScoreFromGame);
        }