Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 返回到程序的开始_C# - Fatal编程技术网

C# 返回到程序的开始

C# 返回到程序的开始,c#,C#,我在这方面已经做了一段时间,但现在我遇到了一个问题,当用户猜到他/她的猜测结束时,我需要让程序重新开始: “Speler”+currentPlayer.PlayerName+“heeft geen gisignen meer!” 我有很多课程,我也会把它放在这里: class GetalSpel { public List<Speler> Spelers { get; set; } public int numberToGuess { get; set; }

我在这方面已经做了一段时间,但现在我遇到了一个问题,当用户猜到他/她的猜测结束时,我需要让程序重新开始:

“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");
        }
    }
类GetalSpel
{
公共列表speler{get;set;}
公共整数猜测{get;set;}
public int maxantalgissingen{get;set;}
public int MaxGetal{get;set;}
公共bool Gestopt{get;set;}
公共GetalSpel()
{
Spelers=新列表();
//变量/属性的名称=新类名();
}
公共GetalSpel(int-maxantalgissingen,int-maxGetal)
{
Spelers=新列表();
this.maxantalgissingen=maxantalgissingen;
this.MaxGetal=MaxGetal;
随机=新随机();
numberToGuess=random.Next(1,MaxGetal+1);
}
public void EnterNewPlayer(字符串名称)
{
if(Spelers.Any(item=>item.PlayerName==name))
{
WriteLine(“Speler”+name+“是gebruik中的芦苇!”);
}
其他的
{
Speler播放器=新Speler();
player.PlayerName=名称;
添加(玩家);
Console.WriteLine(“Speler”+玩家+“是ingescreven”);
控制台。写线(“德鲁克进入绿色特甘”);
Console.ReadLine();
}
}
公共布尔猜测数(字符串名称、整数)
{
布尔猜测数=假;
Speler currentPlayer=Speler.Find(item=>item.PlayerName==name);
if(number==numberToGuess)
{
猜数=真;
Console.WriteLine(“Proficiat”+currentPlayer.PlayerName+”他是“+numberToGuess+”!”;
Gestopt=true;
}
else if(currentPlayer.Gissingen==maxantalgissingen)
{
Console.WriteLine(“Speler”+currentPlayer.PlayerName+“heeft geen gisignen meer!”);
}
其他的
{
currentPlayer.Gissingen=currentPlayer.Gissingen+1;
}
返回猜测编号;
}
}
斯佩勒班
{
公共字符串播放器名称{get;set;}
public int Gissingen{get;set;}
公共斯佩勒()
{
PlayerName=“”;
吉辛根=0;
}
公共Speler(字符串名称)
{ 
PlayerName=名称;
吉辛根=0;
}
}
班级计划
{
静态void Main(字符串[]参数)
{
int maxGetal=0,maxAantalGissingen=0;
字符串输入;
控制台。WriteLine(“Raad het getal spel!”);
做
{
Console.Write(“Geef het maximum getal in waarnaar kan geraden worden:”);
尝试
{
maxGetal=int.Parse(Console.ReadLine());

if(maxGetal一个简单的解决方案是将“Main”方法的代码移动到一个单独的方法(例如startNewName())。一旦应用程序到达该方法的最后一行(在本例中为“while(input!=“3”)”),再次调用startNewName()方法

(伪)代码:

private static void StartNewGame()
{
int maxGetal=0,maxAantalGissingen=0;
字符串输入;
控制台。WriteLine(“Raad het getal spel!”);
//做点什么
GetalSpel游戏=新的GetalSpel(maxAantalGissingen,maxGetal);
Console.Clear();
做
{
//做点什么
}while(输入!=“3”);

StartNewGame();//一个简单的解决方案是将“Main”方法的代码移动到一个单独的方法(例如StartNewGame())。一旦应用程序到达该方法的最后一行(在本例中为“while(input!=“3”)”),再次调用StartNewGame()方法

(伪)代码:

private static void StartNewGame()
{
int maxGetal=0,maxAantalGissingen=0;
字符串输入;
控制台。WriteLine(“Raad het getal spel!”);
//做点什么
GetalSpel游戏=新的GetalSpel(maxAantalGissingen,maxGetal);
Console.Clear();
做
{
//做点什么
}while(输入!=“3”);

StartNewGame();//前面的方法肯定比我的好,作为另一种解决方案,您可以使用标签和转到

public static void Main()
{
    start:      
    //Some logic        
    goto start;
}

前面的方法肯定比我的好,因为另一种解决方案可以使用标签和转到

public static void Main()
{
    start:      
    //Some logic        
    goto start;
}

一个简单的解决方案是将主方法的代码移动到一个单独的方法(例如StartNewGame())。一旦应用程序到达该方法的最后一行(while(input!=“3”)),再次调用StartNewGame()。谢谢!这应该可以解决问题,我没有想到。我建议您将其作为答案输入,以便我可以将其标记为正确:)我很高兴能够提供帮助。一个简单的解决方案是将主方法的代码移动到一个单独的方法(例如startNewName())。一旦应用程序到达该方法的最后一行(while(input!=“3”)),调用startNewName()再一次。谢谢你!这应该能解决问题,我没想到。我建议你把它作为一个答案,这样我就可以把它标记为正确:)我很高兴我能帮上忙。