c#如何重启控制台应用程序



我是一个乞丐,我想做一款井字游戏主机游戏。但是当0个玩家赢了,只有当X个玩家做出决定时才会显示出来。所以,有两个人赢的情况。我试图使用if语句来停止应用程序,但它没有帮助。我想我不需要重新启动应用程序,只需要重新启动Main即可。但是如何? ?

class Program
{
static void Main()
{
string Player1;
string Player2;
int turnPlayer1;
int turnPlayer2;
while (CheckTheWinner() == false)
{
BoardPlay();
Console.Clear();
BoardPlay();
for ( turnPlayer1 = 0; turnPlayer1 < 1; turnPlayer1++)
{
Console.Write("Player O: Choose your field:");
Player1 = Console.ReadLine();
Player1Choice(Player1);
}
CheckTheWinner();
Console.Clear();
BoardPlay();
for (int i = 0; i < 1; i++)
{
Console.Write("Player X: Choose your field:");
Player2 = Console.ReadLine();
Player2choice(Player2);
}
CheckTheWinner();
Console.Clear();
BoardPlay();
}
}

public static void Player1Choice(string P1)
{
string o = "O";
for (int i = 0; i < position.GetLength(0); i++)
{
Console.ForegroundColor = ConsoleColor.Red;
for (int j = 0; j <= 2; j++)
{
if (position[i, j] == P1)
{
position[i, j] = o;  
}
}
};
}

public static void Player2choice(string P2)
{
string x = "X";
for (int i = 0; i < position.GetLength(0); i++)
{
Console.ForegroundColor = ConsoleColor.Red;
for (int j = 0; j <= 2; j++)
{
if (position[i, j] == P2)
{
position[i, j] = x;
}
}
};
}
static bool CheckTheWinner()
{
for (int i = 0; i < 3; i++)
{
if (position[i, 0] == position[i, 1] && position[i, 1] == position[i, 2])
{
return true;
}
if (position[0, i] == position[1, i] && position[1, i] == position[2, i])
{
return true;
}
}
if (position[0, 0] == position[1, 1] && position[1, 1] == position[2, 2])
{
return true;
}
if (position[0, 2] == position[1, 1] && position[1, 1] == position[2, 0])
{
return true;
}
return false;
}

开始新游戏"基本上就是"重复游戏的操作"。使用循环重复操作。

首先,定义循环条件。例如,指示继续播放的布尔标志:

var keepPlaying = true;

然后循环,只要标志为真:

var keepPlaying = true;
while (keepPlaying)
{
// all of the logic currently in your Main method
}

那么你所需要做的就是提示玩家是否想要另一款游戏,并相应地更新变量。例如:

var keepPlaying = true;
while (keepPlaying)
{
// all of the logic currently in your Main method
Console.Write("Would you like to play again? (Y/N): ");
var playerReply = Console.ReadLine();
if (playerReply == "N")
keepPlaying = false;
}

您可以稍微简化一下逻辑,这主要是为了演示。你还可以添加一些逻辑来检查输入,如果玩家选择退出,你可以添加一个关闭消息,添加其他选项,等等。

但关键是,如果你想重复游戏,这不是重新启动应用程序或重新调用Main方法的问题,这只是封装你想要在循环中重复的内容的问题。

相关内容

最新更新