C# 创建一个方法来检查获胜者
我在visual studio c#express中使用win表单开发了一个tic-tac-toe。我想创建一个方法,应该检查赢家,如果没有找到赢家,所有的块都结束了,我们有一个消息显示抽签 但我希望它是形式独立的。 就像我尝试过这样的方程一样C# 创建一个方法来检查获胜者,c#,winforms,C#,Winforms,我在visual studio c#express中使用win表单开发了一个tic-tac-toe。我想创建一个方法,应该检查赢家,如果没有找到赢家,所有的块都结束了,我们有一个消息显示抽签 但我希望它是形式独立的。 就像我尝试过这样的方程一样 if((button1.Text== button2.Text) && (button2.Text== button3.Text)) else if((button4.Text== button5.Text) && (bu
if((button1.Text== button2.Text) && (button2.Text== button3.Text))
else if((button4.Text== button5.Text) && (button5.Text== button6.Text))
else if((button7.Text== button8.Text) && (button8.Text== button9.Text))
我需要一个通用逻辑,以便在另一个类中创建该方法并调用,这可能会有所帮助:
public bool IsThreeInARow(string v1, string v2, string v3)
{
return v1 == v2 && v2 == v3;
}
这将检查一行值(即X-s和/或O-s),与值的来源无关。为您拥有的九个按钮制作九个静态标志,并将它们设置为1或0表示“X”和“0”
使用其他类中的这些标志来确定获胜者。不需要访问tic-tac-toe按钮 首先,当前代码使用类字段,这会阻止您将代码与任何其他表单一起使用。因此,我们没有:
bool CheckWinner() { }
您需要提供游戏数据作为参数:
bool CheckWinner(Button topLeftButton, Button topMiddleButton, ...) { }
然后,有一天您可能会决定不再使用按钮
s,并将方法更改为:
bool CheckWinner(string topLeftValue, string topMiddleValue, ...) { }
您可能还想考虑使用<代码>枚举< /代码>:
enum TicTacToeValue
{
None = 0,
Cross = 1,
Circle = 2,
}
bool CheckWinner(TicTacToeValue topLeft, TicTacToeValue topMiddle, ...) { }
或者甚至为您的方法提供一个数组:
bool CheckWinner(TicTacToeValue[] values) { }
当使用这样的数组时,您可以使程序更加智能,因为您可以重用检查整行或整列值的代码
您甚至可以返回获奖者:
它可以返回
TicTacToeValue.None
如果到目前为止还没有人获胜。你能澄清一下你到底想做什么吗?因为就我理解你的问题而言,你只需要将这些值传递给一个班级,然后在那里检查它们……对我来说,这听起来像是一个家庭作业。你试过什么?
TicTacToeValue GetWinner(TicTacToeValue[] values) { }