2016-04-26 38 views
-2

我已经在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)) 

我想一般的逻辑,这样我可以创建另一个类,方法和调用

+0

你能说清楚你到底想做什么吗?因为据我了解你的问题,你只需要将这些值传递给一个班,并检查他们... – 91378246

+0

听起来像一个家庭作业给我。你有什么尝试? – Alex

回答

0

这可能帮助:

public bool IsThreeInARow(string v1, string v2, string v3) 
{ 
    return v1 == v2 && v2 == v3; 
} 

这将检查一个一行值(即X和/或O),与值的来源无关。

-2

为九个按钮制作九个静态标志,并将它们设置为1或0代表'x'和'0'。

在其他班级中使用这些标志来确定获胜者。不需要访问井字游戏按钮。

1

首先,您当前的代码使用类字段,这会阻止您使用其他任何形式的代码。因此,而不是具有:

bool CheckWinner() { } 

你需要作为参数来提供游戏数据:

bool CheckWinner(Button topLeftButton, Button topMiddleButton, ...) { } 

然后,你可能有一天会决定你将不会被使用Button s,而你倒是改变你的方法:

bool CheckWinner(string topLeftValue, string topMiddleValue, ...) { } 

您可能还需要考虑使用enum

enum TicTacToeValue 
{ 
    None = 0, 
    Cross = 1, 
    Circle = 2, 
} 

bool CheckWinner(TicTacToeValue topLeft, TicTacToeValue topMiddle, ...) { } 

甚至提供这些给你的方法的数组:

bool CheckWinner(TicTacToeValue[] values) { } 

当使用这样的一个数组,你让你的程序多一点智能,因为你可以重复使用,用来检查一个完整的行或列码值。

你甚至可以返回荣获:

TicTacToeValue GetWinner(TicTacToeValue[] values) { } 

哪些可以返回TicTacToeValue.None如果没有人赢得了SOFAR。