Lite hjälp till en nybörjare tack

Permalänk

Lite hjälp till en nybörjare tack

Min uppgift (för högre betyg) är att se till så att mitt gissningsspel kan ge olika meddelanden ifall man är nära på att gissa rätt, och jag kan inte för allt i världen se vad jag gjort för fel. När jag gissar på ett tal som är högre än random talet så händer ingenting. Det skrevs ut " Fel! Lägre!" tidigare, innan jag började pilla med de villkoren som gör att det blir olika meddelanden om man är nära.

Här är koden:

{
class Program
{
public static void Main(string[] args)
{
Random slump = new Random(); //programmet slumpar ett nummer
int ranNr = slump.Next(1, 101);
int guessNr = 1;

Console.WriteLine("Gissa ett tal mellan 1 och 100"); //användaren skriver ut sitt gissnummer
int tal = Convert.ToInt32(Console.ReadLine());

do //loopen börjar
{

if (tal >=ranNr && ranNr - tal >=5) //om gissning är högre än slump nr
{
Console.WriteLine("Fel! Lägre!" );
tal = Convert.ToInt32(Console.ReadLine());
}

else if (tal <=ranNr && ranNr - tal >=5)
{
Console.WriteLine("Fel! Högre" ); //om gissning är lägre än slump nr
tal = Convert.ToInt32(Console.ReadLine());
}

else if (tal >=ranNr && ranNr - tal <=5 && ranNr - tal >=0)
{
Console.WriteLine("Nu är du otroligt nära! Men lite lägre.");
tal = Convert.ToInt32(Console.ReadLine());
}
else if (tal <=ranNr && ranNr - tal <=5 && ranNr - tal >=0)
{
Console.WriteLine("Nu är du otroligt nära! Men lite högre.");
tal = Convert.ToInt32(Console.ReadLine());
}

guessNr++;
}
while (tal != ranNr); //loopen pågår tills gissningen inte skiljer sig ifrån slump nr

Console.WriteLine("Grattis! Du gissade rätt efter " + guessNr + " gissningar!");
Console.ReadLine();

}

}
}

Tack på förhand för hjälpen

Permalänk
Medlem

Du bör vara lite latare när du programmerar.
Själv skulle jag ha gjort följande.

om (gissat tal är större än slumptal)
- om (gissat tal är nära)
- - skriv ut att talet är för stort men nära
- annars
- - skriv ut att talet är för stort
annars om (gissat tal är mindre än slumpat)
- om (gissat tal är nära)
- - skriv ut att talet är nära men för litet
- annars
- - skriv ut att talet är för litet.

Om talet inte kan vara för stort, och inte vara för litet, så måste det vara rätt.

Använd inte >= eller <= om du vill veta om talet är större eller mindre.

else if (tal <=ranNr && ranNr - tal <=5 && ranNr - tal >=0)
Denna rad tillexempel har 3 vilkor.
*om gissat tal är mindre eller lika med slumpat tal
OCH
* om slumpat tal minus gissat tal är mindre eller lika med 5
OCH
* slumpat tal minus gissat tal är större eller lika med 0
alla tre vilkor måste i detta fall vara uppfylda.