Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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#_Winforms - Fatal编程技术网

C# 创建一个方法来检查获胜者

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

我在visual studio c#express中使用win表单开发了一个tic-tac-toe。我想创建一个方法,应该检查赢家,如果没有找到赢家,所有的块都结束了,我们有一个消息显示抽签

但我希望它是形式独立的。 就像我尝试过这样的方程一样

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) { }