13 svar
79 visningar
will sheza 10
Postad: 18 sep 2020

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);

Lindehaven 517 – Leg. Lärare
Postad: 18 sep 2020 Redigerad: 18 sep 2020

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.

will sheza 10
Postad: 18 sep 2020

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.

will sheza 10
Postad: 18 sep 2020

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);

will sheza 10
Postad: 18 sep 2020

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å.

will sheza 10
Postad: 18 sep 2020

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 ?

will sheza 10
Postad: 18 sep 2020

det funkade inte heller. Är jag hjärndöd eller är det ganska svårt att se?

Laguna Online 10972
Postad: 18 sep 2020

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.

will sheza 10
Postad: 18 sep 2020

okey hur ska jag göra så att den blir testad ?

will sheza 10
Postad: 18 sep 2020

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) ;

will sheza 10
Postad: 18 sep 2020

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) ;

Svara Avbryt
Close