Konsolowa gra "Milionerzy"

0

Witam, piszę grę milionerzy w c# w wersji konsolowej, niestety program nie czyta mi poprawnej odpowiedzi, czy ktoś z was wie gdzie może być problem
Oto kod gry:

using System;
using System.IO;
using System.Linq;

class Milionerzy
{
    static void Main()
    {
        Console.WriteLine("Witaj w grze Milionerzy!");
        Console.WriteLine("Odpowiedz poprawnie na wszystkie pytania, aby wygrać milion.");

        // Wczytywanie pytań z pliku tekstowego
        Question[] questions = LoadQuestions("pytania.txt");

        if (questions.Length < 20)
        {
            Console.WriteLine("Plik musi zawierać przynajmniej 20 pytań.");
            return;
        }

        int aktualnePytanie = 0;
        int punkty = 0;

        while (aktualnePytanie < 20)
        {
            DisplayQuestion(questions[aktualnePytanie]);

            Console.Write("Podaj odpowiedź (A, B, C, D): ");
            string odpowiedzGracza = Console.ReadLine().ToUpper().Trim();

            Console.WriteLine($"DEBUG: Odpowiedź gracza: {odpowiedzGracza}");
            Console.WriteLine($"DEBUG: Poprawna odpowiedź: {questions[aktualnePytanie].CorrectAnswer.ToUpper()}");

            if (odpowiedzGracza.Equals(questions[aktualnePytanie].CorrectAnswer.ToUpper(), StringComparison.OrdinalIgnoreCase))
            {
                Console.WriteLine("Poprawna odpowiedź! Zdobywasz punkt!");
                punkty++;
            }
            else
            {
                Console.WriteLine("Błędna odpowiedź. Koniec gry.");
                break;
            }

            aktualnePytanie++;
        }

        Console.WriteLine($"\nKoniec gry. Zdobyte punkty: {punkty}");

        if (punkty == 20)
        {
            Console.WriteLine("Gratulacje! Wygrałeś milion!");
        }

        Console.ReadLine();
    }

    static void DisplayQuestion(Question question)
    {
        Console.WriteLine($"\nPytanie: {question.Content}");

        for (int i = 0; i < 4; i++)
        {
            Console.WriteLine($"{(char)('A' + i)}) {question.Answers[i]}");
        }
    }

    static Question[] LoadQuestions(string filePath)
    {
        using (StreamReader reader = new StreamReader(filePath))
        {
            Question[] questions = new Question[20];
            int currentQuestion = 0;
            while (!reader.EndOfStream && currentQuestion < 20)
            {
                string questionContent = reader.ReadLine()?.Trim();
                string[] answers = new string[4];
                for (int i = 0; i < 4; i++)
                {
                    answers[i] = reader.ReadLine()?.Trim();
                }
                string correctAnswer = reader.ReadLine()?.Trim();

                questions[currentQuestion] = new Question
                {
                    Content = questionContent,
                    Answers = answers,
                    CorrectAnswer = correctAnswer
                };

                currentQuestion++;
            }
            return questions;
        }
    }
}

class Question
{
    public string Content { get; set; }
    public string[] Answers { get; set; }
    public string CorrectAnswer { get; set; }
}

To są pytania które znajdują się w pliku pytania.txt

  1. Które z tych zwierząt nie jest roślinożerne?
    a) Koń
    b) Krowa
    c) Lew
    d) Zebra
    Odpowiedź: c
  2. Które z tych miast jest stolicą Francji?
    a) Berlin
    b) Madryt
    c) Rzym
    d) Paryż
    Odpowiedź: d
  3. Ile wynosi pierwiastek kwadratowy z liczby 25?
    a) 3
    b) 5
    c) 7
    d) 10
    Odpowiedź: b
  4. Kto napisał dramat "Romeo i Julia"?
    a) William Shakespeare
    b) Charles Dickens
    c) Jane Austen
    d) Fiodor Dostojewski
    Odpowiedź: a
  5. Jak nazywa się najwyższa góra świata?
    a) Mont Blanc
    b) Mount Everest
    c) Kilimandżaro
    d) K2
    Odpowiedź: b
  6. Które z poniższych kolorów jest barwą podstawową?
    a) Brązowy
    b) Zielony
    c) Różowy
    d) Pomarańczowy
    Odpowiedź: b
  7. Które zwierzę jest największe na świecie?
    a) Słoń
    b) Wieloryb błękitny
    c) Hipopotam
    d) Żyrafa
    Odpowiedź: b
  8. W którym roku miała miejsce bitwa pod Grunwaldem?
    a) 1385
    b) 1410
    c) 1492
    d) 1558
    Odpowiedź: b
  9. Jak nazywa się największa rzeka w Polsce?
    a) Wisła
    b) Odra
    c) Warta
    d) Bug
    Odpowiedź: a
  10. Ile wynosi 8 do potęgi 2?
    a) 16
    b) 64
    c) 128
    d) 256
    Odpowiedź: b
  11. Które z poniższych państw nie leży w Europie?
    a) Francja
    b) Brazylia
    c) Hiszpania
    d) Polska
    Odpowiedź: b
  12. Który pierwiastek chemiczny reprezentowany jest symbolem 'O'?
    a) Tlen
    b) Węgiel
    c) Azot
    d) Sód
    Odpowiedź: a
  13. Kto był pierwszym prezydentem Stanów Zjednoczonych?
    a) George Washington
    b) Thomas Jefferson
    c) Abraham Lincoln
    d) John F. Kennedy
    Odpowiedź: a
  14. Ile stron ma trójkąt równoboczny?
    a) 2
    b) 3
    c) 4
    d) 6
    Odpowiedź: b
  15. Które z poniższych zwierząt jest gatunkiem płazów?
    a) Wąż
    b) Krokodyl
    c) Żaba
    d) Papuga
    Odpowiedź: c
  16. Kto napisał powieść "Zbrodnia i kara"?
    a) Leo Tolstoj
    b) Fiodor Dostojewski
    c) James Joyce
    d) Charles Dickens
    Odpowiedź: b
  17. W którym roku odbyły się pierwsze współczesne Letnie Igrzyska Olimpijskie?
    a) 1896
    b) 1908
    c) 1924
    d) 1936
    Odpowiedź: a
  18. Jak nazywa się największe jezioro na świecie pod względem powierzchni?
    a) Jezioro Bajkał
    b) Jezioro Michigan
    c) Jezioro Wiktorii
    d) Jezioro Ontario
    Odpowiedź: a
  19. Kto był autorem "Starego człowieka i morza"?
    a) Ernest Hemingway
    b) William Faulkner
    c) F. Scott Fitzgerald
    d) John Steinbeck
    Odpowiedź: a
  20. Który pierwiastek chemiczny reprezentowany jest symbolem 'Fe'?
    a) Żelazo
    b) Fluor
    c) Fosfor
    d) Franc
    Odpowiedź: a

Liczę na waszą pomoc

0

Nie działa ci odczytywanie czy porównywanie odpowiedzi? Bo w pliku masz "Odpowiedź: a" i to porównujesz z tym co wprowadził gracz czyli np. "a" - to nigdy nie będzie to samo.

2

@Kropekui Ta string correctAnswer = reader.ReadLine()?.Trim(); linijka jest problemem, albo to jak zapisujesz odpowiedź w pliku. w correctAnswer dla pierwszego przypadku będziesz miał string Odpowiedź: c, a chcesz raczej c

1 użytkowników online, w tym zalogowanych: 0, gości: 1