gissa leken
problemet jag har är att när jag kör programmet så frågar den om jag vill spela igen när jag har 1 gissning kvar
Varför?
using System;
class Program
{
public static void Main(string[] args)
{
int slumpnummer = new Random().Next(1, 100);
int gissning;
int gissnigar;
string respons;
bool spelaIgen = true;
gissnigar = 1;
int försök = 1;
int MaxFörsök = 9;
Console.WriteLine("Hej o välkommen");
while (spelaIgen)
{
do
{
Console.WriteLine("Gissa på ett tal mellan 1 - 100");
gissning = int.Parse(Console.ReadLine());
gissnigar++;
if (gissning > 100)
{
Console.WriteLine("Du måste välja ett nummer från 1 - 100");
Console.WriteLine("Du har nu " + MaxFörsök + " försök kvar ");
MaxFörsök--;
försök++;
}
if (gissning < slumpnummer)
{
Console.WriteLine("Din gissning är för låg");
Console.WriteLine("Du har nu " + MaxFörsök + " försök kvar ");
MaxFörsök--;
försök++;
}
if (slumpnummer == gissning)
{
Console.WriteLine("Grattis du gissade rätt tal");
Console.Write("Du gissade " + gissnigar + " gånger ");
break;
}
if (gissning > slumpnummer)
{
Console.WriteLine("Din gissning är för hög");
Console.WriteLine("Du har nu " + MaxFörsök + " försök kvar ");
MaxFörsök--;
försök++;
}
if (MaxFörsök == -0)
{
break;
}
} while (gissning != slumpnummer);
Console.WriteLine(" Vill du spela igen? ");
Console.WriteLine(" J = Ja/ N = Nej ");
respons = Console.ReadLine();
respons = respons.ToUpper();
if (respons == "J")
{
spelaIgen = true;
}
if (respons == "N")
{
spelaIgen = false;
Console.WriteLine("Tack för din medverkan");
}
}
Det går inte att se vad det står i din bild, tyvärr.
Laguna skrev:Det går inte att se vad det står i din bild, tyvärr.
där är koden
Om den säger "du har nu 1 försök kvar" så gör du MaxFörsök-- på nästa rad och då blir den 0 och då går du ur loopen längre ner.
Laguna skrev:Om den säger "du har nu 1 försök kvar" så gör du MaxFörsök-- på nästa rad och då blir den 0 och då går du ur loopen längre ner.
Jag löste det genom att ändra på if (maxförsök == 0 till -1 så nu funkar allt felfritt