Я работал над этим некоторое время, но теперь я столкнулся с проблемой, когда мне нужно запустить программу, когда пользователь дойдет до конца своих догадок:Возвращаясь к началу программы
"Speler" + currentPlayer.PlayerName + "heeft geen gisignen meer!"
У меня есть куча классов, и я положу его здесь тоже:
class GetalSpel
{
public List<Speler> Spelers { get; set; }
public int numberToGuess { get; set; }
public int MaxAantalGissingen { get; set; }
public int MaxGetal { get; set; }
public bool Gestopt { get; set; }
public GetalSpel()
{
Spelers = new List<Speler>();
//name of variable/property = new Classname();
}
public GetalSpel(int maxAantalGissingen, int maxGetal)
{
Spelers = new List<Speler>();
this.MaxAantalGissingen = maxAantalGissingen;
this.MaxGetal = maxGetal;
Random random = new Random();
numberToGuess = random.Next(1, MaxGetal + 1);
}
public void EnterNewPlayer(string name)
{
if (Spelers.Any(item => item.PlayerName == name))
{
Console.WriteLine("Speler " + name + " is reeds in gebruik!");
}
else
{
Speler player = new Speler();
player.PlayerName = name;
Spelers.Add(player);
Console.WriteLine("Speler " + player + " is ingescreven.");
Console.WriteLine("Druk enter om verder te gaan");
Console.ReadLine();
}
}
public bool GuessNumber(string name, int number)
{
bool guessNumber = false;
Speler currentPlayer = Spelers.Find(item => item.PlayerName == name);
if (number == numberToGuess)
{
guessNumber = true;
Console.WriteLine("Proficiat " + currentPlayer.PlayerName + " het getal was" + numberToGuess + "!");
Gestopt = true;
}
else if (currentPlayer.Gissingen == MaxAantalGissingen)
{
Console.WriteLine("Speler " + currentPlayer.PlayerName + "heeft geen gisignen meer!");
}
else
{
currentPlayer.Gissingen = currentPlayer.Gissingen + 1;
}
return guessNumber;
}
}
class Speler
{
public string PlayerName { get; set; }
public int Gissingen { get; set; }
public Speler()
{
PlayerName = "";
Gissingen = 0;
}
public Speler(string Name)
{
PlayerName = Name;
Gissingen = 0;
}
}
class Program
{
static void Main(string[] args)
{
int maxGetal = 0, maxAantalGissingen = 0;
string input;
Console.WriteLine("Raad het getal spel!");
do
{
Console.Write("Geef het maximum getal in waarnaar kan geraden worden: ");
try
{
maxGetal = int.Parse(Console.ReadLine());
if (maxGetal <= 0)
{
Console.WriteLine("Getal moet positief zijn!");
}
}
catch (FormatException)
{
Console.WriteLine("Moet een getal zijn!");
}
} while (maxGetal <= 0);
do
{
Console.WriteLine("Geef het maximum aantal pogingen in: ");
try
{
maxAantalGissingen = int.Parse(Console.ReadLine());
if (maxAantalGissingen <= 0)
{
Console.WriteLine("Getal moet positief zijn!");
}
}
catch (FormatException)
{
Console.WriteLine("Moet een getal zijn!");
}
} while (maxAantalGissingen <= 0);
GetalSpel game = new GetalSpel(maxAantalGissingen, maxGetal);
Console.Clear();
do
{
Console.WriteLine("1. Schrijf Speler in");
Console.WriteLine("2. Start Spel");
Console.WriteLine("3. Stop");
Console.Write("> ");
input = Console.ReadLine();
switch (input)
{
case "1":
{
try
{
Speler speler = new Speler();
Console.WriteLine("Geeft de naam van de nieuwe speler ");
speler.PlayerName = Console.ReadLine();
game.Spelers.Add(speler);
}
catch (FormatException)
{
Console.WriteLine("Het naam mocht geen nummers bevatten.");
throw;
}
}
break;
case "2":
do
{
Console.WriteLine("Nieuwe gissing");
Console.WriteLine("Geef de naam van de speler: ");
string chosenPlayer = Console.ReadLine();
Console.WriteLine("Geef het getal: ");
int chosenNumber = int.Parse(Console.ReadLine());
try
{
game.GuessNumber(chosenPlayer, chosenNumber);
}
catch (NullReferenceException)
{
Console.WriteLine("Speler " + chosenPlayer + " is niet ingeschreven!");
}
} while (game.Gestopt == false);
Console.WriteLine("Druk op enter om verder te gaan");
Console.ReadLine();
break;
default:
break;
case "3":
{
Environment.Exit(0);
}
break;
}
} while (input != "3");
}
}
простое решение заключается в перемещении кода главного метода отдельного метода (например, StartNewGame()). После того как приложение достигает последняя строка метода (while (input! = "3")) снова вызовите StartNewGame(). – Odrai
Спасибо! Это должно решить, я об этом не думал. Я предлагаю вам положить его в качестве ответа, чтобы я мог отметить его как правильно :) –
Я рад, что смог помочь. – Odrai