I am new to c# and I am doing a random number generator and I need it to rerun when the user types the letter "j". I succeeded in that but when its rerun its the same number all the time. Can you help me figure out how :) This is what I have tried, so please give me ideas to resolve this problem.
static void Main(string[] args)
{
// Deklaration av variabler
int min = 1;
int max = 20; //Jag skapade en min och max för vad jag förstår det som så är "Next" mellan 0 och Int.MaxValue vilket är alldeles för mycket.
Random slumpat = new Random(); // skapar ett random objekt
int speltal = slumpat.Next(min, max); // anropar Next metoden för att skapa ett slumptal mellan 1 och 20
int rättTal = speltal;
// läs på, vad är overload metoder? https://msdn.microsoft.com/en-us/library/system.random.next(v=vs.110).aspx
bool spela = true; // Variabel för att kontrollera om spelet ska fortsätta köras
string igen = "";
while (spela) // Här tog jag bort "!" för att programmet avslutades vilket får mig att anta att den betyder att "någonting" är falskt. I detta fallet är "någonting" "spela"
{
int check = 0;
Console.Write("\n\tGissa på ett tal mellan 1 och 20: ");
Int32.TryParse(Console.ReadLine(), out int tal); //Det fanns ingen felsökningsmetod för om de inte skrev en siffra, därför gjorde jag detta.
if (tal < speltal)
{
Console.WriteLine("\tDet inmatade talet " + tal + " är för litet, försök igen.");
}
if (tal > speltal)
{
Console.WriteLine("\tDet inmatade talet " + tal + " är för stort, försök igen.");
}
if (tal == speltal) //Jag ändrade "=" till "==" på grund av att det ska vara lika med och inte en jämförelse.
{
Console.WriteLine("\tGrattis, du gissade rätt! Tryck på valfri knapp för att fortsätta.");
Console.ReadLine();
Console.Clear();
check = 1;
}
if (check == 1)
{
Console.WriteLine("\tVill du spela igen? (j/n): ");
igen = Console.ReadLine();
Console.Clear();
if (igen == "j")
{
continue;
}
if (igen == "n")
{
break;
}
}
}
}
}
}