Gissa talet som många andra!
case "2":
Random generator = new Random();
int random = generator.Next(1,101);
int guesses = 0;
int guesslimit = 8;
Console.WriteLine("Hejsan och Välkommen till Gissa talet !");
Console.WriteLine("När programleken väl börjar ska du gissa på ett tal mellan 1-100");
Console.WriteLine("Du kommer få tre gissningar, efter varje gissning så kommer du få veta om talet är lägre eller högre än det du gissat.");
Console.WriteLine("Programmet har redan slumpat ett tal mellan 1-100 vad är din första gisning?");
int guess;
do
{
guess = int.Parse(Console.ReadLine());
guesses++;
if (guess > random)
{
Console.WriteLine("Tyvärr så gissade du fel! Ditt tal är för högt");
if (Math.Abs(guess - random) <=5)
{
Console.WriteLine("du är nära det bränns! gissa lite lägre!");
}
}
if (guess < random)
{
Console.WriteLine("Tyvärr så gissade du fel! Nu gissade du för lågt");
if (Math.Abs(guess - random) >=5)
{
Console.WriteLine("Det bränns! testa gissa lite högre");
}
}
if (guess == random)
{
Console.WriteLine($"Grattis du gissade rätt, siffran är {random} och du gissade rätt på {guess} ");
}
if (guesses == guesslimit && guess != random)
{
Console.WriteLine($"Gratulerar du gissade {random}");
}
} while (guesses != guesslimit && guess != random);
Jag vet att guess limit är 8 och det står 3 i programmet
Mina frågeställningar är:
Det känns som att det slumpade numret, slumpas efter varje gissning. Så det blir ett nytt tal att gissa på.
Math.abs metoden verkar inte ge ut det jag vill, gissar jag på 50 säger mitt program jag är nära fast svaret i slutet var 80 och jag vill att denna metod endast visas om man är mellan 1-5 högre eller lägre.
Kan du fixa indenteringen så det blir lättare att läsa?
Var det du leta efter?
Just det, men nu försvann din fråga.
När du använder Abs så ska du använda <= 5 i båda fallen. Resultatet kommer ju inte att vara negativt.
Ett alternativ är att inte använda Abs, men att subtrahera så att du får ett positivt tal. Du vet ju om guess är större än eller mindre än random.
random ser inte ut att ändra sitt värde i loopen. Skriv ut random också medan du utvecklar.
Ska inte sista utskriften vara ungefär "Beklagar, du lyckades inte, talet var ...".
Sista du nämda , ja absolut , koden på sån är ej färdig skriven , då jag test kör programmet väldigt ofta för o finna sådana här små fel. Och nu har jag fastnat på math.abs.
Så ändra < så det blir samma i båda math.abs
Eller som du säger kan jag subtrahera det. Och du får gärna utveckla då det en aning o ge mig en hint hur du tänker. Tack för tid och svar
Laguna skrev:När du använder Abs så ska du använda <= 5 i båda fallen. Resultatet kommer ju inte att vara negativt.
Ett alternativ är att inte använda Abs, men att subtrahera så att du får ett positivt tal. Du vet ju om guess är större än eller mindre än random.
random ser inte ut att ändra sitt värde i loopen. Skriv ut random också medan du utvecklar.
Ska inte sista utskriften vara ungefär "Beklagar, du lyckades inte, talet var ...".
Jag bytte ut symbolen som du sa och första körningen fungerande mycket bättre. Nu ska jag fullgöra det andra du påpekade.
Skulle du ändra på kodningen eller tycker struktur mässigt det ser bra ut ?
Det ser bra ut.
Om du inte har några andra inflikar !
Tackar jag så hemskt mycket för hjälpen och tiden ! Ibland blir man blind i sitt kodande ! ✌️