ChatGPT sieht ein Problem in meiner Method und ich verstehe nicht wirklich wo das Problem liegt (C# Programmieren)?
Ich lerne C# und habe ein kleines Programm entwickelt, In dem man Random eine Zahl rollt, die Größer sein soll als ein Random gerolltes Ziel. Ist die eigene Zahl kleiner als das Ziel hat man verloren, ist sie größer hat man gewonnen. Nun habe ich das Programm einmal ChatGPT überblicken lassen, und es sieht ein Problem in meiner StartReset variable in meiner ShouldPlay Methode und ich habe nicht ganz verstanden worin das Problem liegt, da mein Programm auch so ohne Probleme läuft und der Compiler weder Fehler, noch Warnungen anzeigt. Vielleicht kann mir ein Mensch besser erklären, worin ChatGPT das Problem sieht?
```
Random random = new Random();
Console.WriteLine("Would you like to play? Y/N)");
if (ShouldPlay(true))
{
PlayGame();
}
void PlayGame()
{
var play = true;
while (play)
{
var target = random.Next(0, 6);
var roll = random.Next(0, 7);
Console.WriteLine($"Roll a number greater than {target} to win!");
Console.WriteLine($"You rolled a {roll}");
Console.WriteLine(WinOrLose(roll, target));
Console.WriteLine("\nPlay again? (Y/N)");
play = ShouldPlay(false);
}
}
bool ShouldPlay(bool startReset)
{
while (true)
{
Console.WriteLine("Please enter Y or N");
string? userInput = Console.ReadLine();
string? loweredInput = userInput?.ToLower();
if (loweredInput == "y")
{
return true;
}
else if (loweredInput == "n")
{
return false;
}
}
}
string WinOrLose(int roll, int target)
{
if (roll > target)
{
return "You won!";
}
else
{
return "You lose!";
}
}
```
1 Antwort
string? loweredInput = userInput?.ToLower();
Das Fragezeichen bei String ist überflüssig. String ist generell nullable. Braucht also nicht extra als nullable markiert werden.
Ja. Du nutzt die Startreset variable gar nicht. Das sollte dir aber eigentlich auch der Compiler als warning ankreiden.
Sprich: diese variable ist überflüssig. Und kann entfernt werden.
Edit: ist es beabsichtigt das der eine Spieler von 0-6 wirft und der andere von 0-7?
Das Target soll eine 1-5 würfeln und der Spieler eine 1-6.