Gå til indholdet

N157 Gæt et tal (procedural version)

Tip

Se N155 Gæt et tal (iterativ version) før du kaster dig over denne!

Lav en procedural version af “Gæt et tal” spillet, hvor brugeren skal gætte et tilfældigt genereret tal mellem 1 og 100:

  • Programmet skal have en metode GenererTilfældigtTal, der returnerer et tilfældigt tal mellem 1 og 100.
  • Programmet skal have en metode HentTalFraBruger, der returnerer et tal indtastet af brugeren.
  • Programmet skal have en metode GivFeedback, der udskriver feedback baseret på brugerens gæt.
  • Programmet skal bruge top-level statements.
  • Hvis brugeren gætter forkert, skal programmet fortsætte med at bede om et nyt gæt, indtil brugeren gætter rigtigt.
  • Du må gerne ignorere fejlhåndtering (eksempelvis hvis brugeren indtaster et forkert tal)

Udvidelse

Du kan måske selv finde på nogle udvidelser til spillet:

  • Tæl antal forsøg brugeren har brugt på at gætte tallet.
  • Lad brugeren vælge det maksimale tal, som det genererede tal kan være.
  • Brug farver (brug Console.ForegroundColor) til at gøre spillet mere visuelt interessant.

Tip

Hvis du er i tvivl om hvordan du skaber en konsolapplikation så følg:

Klik for at se et forslag til en løsning
using System; // muligvis ikke nødvendig i nyere versioner af C# pga `ImplicitUsings`

int GenererTilfældigtTal()
{
    Random random = new();
    return random.Next(1, 101);
}

int HentTalFraBruger()
{
    Console.Write("Gæt et tal mellem 1 og 100: ");
    string? input = Console.ReadLine();
    return Convert.ToInt32(input);
}

void GivFeedback(int guess, int correctNumber)
{
    if (guess > correctNumber)
    {
        Console.WriteLine("For højt!");
    }
    else if (guess < correctNumber)
    {
        Console.WriteLine("For lavt!");
    }
}

int numberToGuess = GenererTilfældigtTal(); 
int userGuess;

do
{
    userGuess = HentTalFraBruger();
    GivFeedback(userGuess, numberToGuess);
} while (userGuess != numberToGuess);

Console.WriteLine("Tillykke, du gættede det rigtige tal!");