13 svar
3190 visningar
will sheza 25 – Fd. Medlem
Postad: 18 sep 2020 11:45

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 820 – Lärare
Postad: 18 sep 2020 12:15 Redigerad: 18 sep 2020 12:15

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 25 – Fd. Medlem
Postad: 18 sep 2020 12:35

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

Lindehaven 820 – Lärare
Postad: 18 sep 2020 12:49

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 25 – Fd. Medlem
Postad: 18 sep 2020 12:57

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

Lindehaven 820 – Lärare
Postad: 18 sep 2020 13:01

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 25 – Fd. Medlem
Postad: 18 sep 2020 13:04

har gjort det och det skrivs ändå inte ut. programmet avslutas bara

Lindehaven 820 – Lärare
Postad: 18 sep 2020 13:32

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 25 – Fd. Medlem
Postad: 18 sep 2020 13:44

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 25 – Fd. Medlem
Postad: 18 sep 2020 13:48

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

Laguna Online 30484
Postad: 18 sep 2020 13:53

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 25 – Fd. Medlem
Postad: 18 sep 2020 14:05

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

will sheza 25 – Fd. Medlem
Postad: 18 sep 2020 14:09

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 25 – Fd. Medlem
Postad: 18 sep 2020 14:55

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
Close