Uppgift 3: Gissa talet
hej tack för hjälpen men nu skriver den attt man har gissat rätt efter två försök
Console.WriteLine("Hello welcome to Guess the number");
Console.WriteLine("Please guess a number, good luck");
Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);
string strNr = Console.ReadLine();
int nr = Convert.ToInt32(strNr);
int guess = 1;
do
{
guess++;
if (nr > slump_tal)
{
Console.WriteLine("Sorry your guess incorrect");
Console.WriteLine("Please guess a smaller number");
Console.ReadLine();
}
else if (nr < slump_tal)
{
Console.WriteLine("Sorry your guess incorrect");
Console.WriteLine("Please guess a higher number");
Console.ReadLine();
}
Console.WriteLine("Congratulations you guess the number in " + guess + " try/s ");
Console.ReadLine();
} while (nr != slump_tal);
Dessa två rader kommer alltid att köras oavsett värden på nr och slump_tal:
Console.WriteLine("Congratulations you guess the number in " + guess + " try/s ");
Console.ReadLine();
Om du innesluter dem i ett else-block så löser det just det problemet:
else
{
Console.WriteLine("Congratulations you guess the number in " + guess + " try/s ");
Console.ReadLine();
}
Det finns mer saker att lösa i din kod, bland annat behöver nya gissningar sparas i variabeln nr.
hej tack har ändrat men nu loopar den bara. hur spara jag nya gissningar i variabeln nr?
Console.WriteLine("Hello welcome to Guess the number");
Console.WriteLine("Please guess a number, good luck");
Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);
string strNr = Console.ReadLine();
int nr = Convert.ToInt32(strNr);
int guess =1;
do
{
guess++;
if (nr > slump_tal)
{
Console.WriteLine("Sorry your guess incorrect");
Console.WriteLine("Please guess a smaller number");
Console.ReadLine();
}
else if (nr < slump_tal)
{
Console.WriteLine("Sorry your guess incorrect");
Console.WriteLine("Please guess a higher number");
Console.ReadLine();
}
else
{
Console.WriteLine("Congratulations you guess the number in " + guess + " try/s ");
Console.ReadLine();
}
} while (nr != slump_tal) ;
Du har redan gjort det i början av ditt program. Du behöver göra på liknande sätt igen men behöver inte deklarera variablerna en gång till. Det blir så här:
strNr = Console.ReadLine();
nr = Convert.ToInt32(strNr);
Förslagsvis deklarerar du en ny funktion och lägger du inläsningen av nya tal i den.
okey tacvk har fixat det nu men får inte fram inte fram mitt congrats medelande.
Console.WriteLine("Hello welcome to Guess the number");
Console.WriteLine("Please guess a number, good luck");
Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);
string strNr = Console.ReadLine();
int nr = Convert.ToInt32(strNr);
int guess =1;
do
{
slump_tal = randomerare.Next(1, 101);
guess++;
if (nr > slump_tal)
{
Console.WriteLine("Sorry your guess incorrect");
Console.WriteLine("Please guess a smaller number");
strNr = Console.ReadLine();
nr = Convert.ToInt32(strNr);
}
else if (nr < slump_tal)
{
Console.WriteLine("Sorry your guess incorrect");
Console.WriteLine("Please guess a higher number");
strNr = Console.ReadLine();
nr = Convert.ToInt32(strNr);
}
else
{
Console.WriteLine("Congratulations you guess the number in " + guess + " try/s ");
Console.ReadLine();
}
} while (nr != slump_tal) ;
Du slumpar fram ett nytt tal i varje iteration i loopen så det bli jättesvårt att gissa rätt då.
do
{
slump_tal = randomerare.Next(1, 101);
har gjort det och det skrivs ändå inte ut. programmet avslutas bara
Så, när du gissar rätt så avslutas programmet utan att det skriver ut grattis-meddelandet? Fundera på varför det blir så.
jag testade att lägga till else (nr == slump_Tal) men det händer samma sak. Skall jag lägga congrats meddelandet i if statsen i stället ?
det funkade inte heller. Är jag hjärndöd eller är det ganska svårt att se?
Du läser in ett nytt tal när det förra var fel, men sen blir det inte testat med meddelanden förrän nästa varv, och då har du ramlat ur loopen redan ifall talet var rätt.
okey hur ska jag göra så att den blir testad ?
Console.WriteLine("Hello welcome to Guess the number");
Console.WriteLine("Please guess a number, good luck");
Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);
string strNr = Console.ReadLine();
int nr = Convert.ToInt32(strNr);
int guess =1;
do
{
guess++;
strNr = Console.ReadLine();
nr = Convert.ToInt32(strNr);
if (nr > slump_tal)
{
Console.WriteLine("Sorry your guess incorrect");
Console.WriteLine("Please guess a smaller number");
}
else if (nr < slump_tal)
{
Console.WriteLine("Sorry your guess incorrect");
Console.WriteLine("Please guess a higher number");
}
else
{
Console.WriteLine("Congratulations you guess the number in " + guess + " try/s ");
Console.ReadLine();
}
} while (nr != slump_tal) ;
hej det funkar nu :)
Console.WriteLine("Hello welcome to Guess the number");
Console.WriteLine("Please guess a number, good luck");
int nr;
string strNr;
Random randomerare = new Random();
int slump_tal = randomerare.Next(1, 101);
strNr = Console.ReadLine();
nr = Convert.ToInt32(strNr);
int guess =1;
do
{
guess++;
if (nr > slump_tal)
{
Console.WriteLine("Sorry your guess incorrect");
Console.WriteLine("Please guess a smaller number");
strNr = Console.ReadLine();
nr = Convert.ToInt32(strNr);
}
else if (nr < slump_tal)
{
Console.WriteLine("Sorry your guess incorrect");
Console.WriteLine("Please guess a higher number");
strNr = Console.ReadLine();
nr = Convert.ToInt32(strNr);
}
if (nr == slump_tal)
{
Console.WriteLine("Congratulations you guess the number in " + guess + " try/s ");
Console.ReadLine();
}
} while (nr != slump_tal) ;