Home > OS >  i only want one statement in my guessing game for C#
i only want one statement in my guessing game for C#

Time:07-03

I have a problem with my guessing number simulator, almost everything except for one last statement is done and I need to get a answer that says i should guess somewhere between 1,100. And i do, but I also get the answer that my guess is to high and I´m not suppose to have that for school... can someone please help me? here is my code.

 //introduktion  
 Console.WriteLine("gissa talet\nDu ska nu gissa ett tal mellan 1 ocn 100, så 
 varsågod..\nskriv in ett tal");
 var str = Console.ReadLine();
 int guess = Convert.ToInt32(str);
 Random rd = new Random();
 int rand_num = rd.Next(1, 100);

 //when your guess is right
 if (guess == rand_num)
     {
         Console.WriteLine("Ditt Tal är rätt. grattis!");
     }

 //when your guess is to small
     else if (guess < rand_num)
     {
         Console.WriteLine("Ditt tal är för litet. gissa på ett större tal");
     }

 //when your guess is to high
     if (guess > rand_num)
     {
         Console.WriteLine("Ditt tal är för stort. gissa på ett mindre tal");
     }

     //and when you guess is still wrong but close
     if (Math.Abs(guess - rand_num) <= 3)
     {
         Console.WriteLine("Du är dock nära och det bränns");
     }

     // when your guess is over 100
     if (guess > 100)
     {
         Console.WriteLine("Du måste skriva in ett tal mellan 1 och 100!");
     }

 // ending line
 Console.WriteLine("Programmet är slut");

CodePudding user response:

Try this:

//introduktion  
Console.WriteLine("gissa talet\nDu ska nu gissa ett tal mellan 1 ocn 100, så 
  varsågod..\nskriv in ett tal");
var str = Console.ReadLine();
int guess = Convert.ToInt32(str);
Random rd = new Random();
int rand_num = rd.Next(1, 100);

//when your guess is right
if (guess == rand_num)
{
    Console.WriteLine("Ditt Tal är rätt. grattis!");
}
else 
{
    // when your guess is over 100
    if (guess > 100)
    {
        Console.WriteLine("Du måste skriva in ett tal mellan 1 och 100!");
    }
    else
    {
        //when your guess is to small
        if (guess < rand_num)
        {
            Console.WriteLine("Ditt tal är för litet. gissa på ett större tal");
        }

        //when your guess is to high
        else // if (guess > rand_num) - redundant check: if it's not equal or below
             //                         it must be greater
        {
            Console.WriteLine("Ditt tal är för stort. gissa på ett mindre tal");
        }
    
        //and when you guess is still wrong but close
        if (Math.Abs(guess - rand_num) <= 3)
        {
            Console.WriteLine("Du är dock nära och det bränns");
        }
    }
}
// ending line
Console.WriteLine("Programmet är slut");
  •  Tags:  
  • c#
  • Related