在拼图中检查获胜者

时间:2016-05-09 12:15:01

标签: c#

我想设计一个检查玩家A或B是否获胜的功能。 现在我只是重复使用一堆代码。如果可能的话,我想为每个使用相同的功能。现在我有两个不同的if语句,一个用于A和用于B.有关如何合并它们的提示? 我是否可以创建一个既接受A和B值又使用某种if语句的某种tenary函数的函数?

if (label[x,0].theValue() == A && label[x,1].theValue() == A && label[x,2].theValue) == A)
{
   MessageBox.Show("A Wins!");
}

if (label[x,0].theValue() == B && label[x,1].theValue() == B && label[x,2].theValue) == B)
    {
       MessageBox.Show("B wins!");
    }

4 个答案:

答案 0 :(得分:0)

我认为你可以这样做:

public string CheckWinner(int x){
  if( "your code" ) { return "A wins"; }
  if( "your code" ) { return "B wins"; }
}

然后在你的主要功能(表格)上

MessageBox.Show(CheckWinner(1));

我希望这有帮助。

答案 1 :(得分:0)

你可以写一个功能来检查一个给定的玩家是否赢了这样(假设你的代码中的A和B是玩家对象)

private bool HasWon(Player player)
{
    if (label[x,0].theValue() == player && label[x,1].theValue() == player && label[x,2].theValue() == player)
    {
        return true;
    }
        return false;
}

您可以像这样使用此功能:

if(HasWon(A))
{
    MessageBox.Show("A Wins!");
}

或者,如果你有一个List或类似于所有玩家的东西,请这样做:

foreach(var player in players)
{
    if(HasWon(player))
    {
        MessageBox.Show(player.Name + " Wins!");
    }
}

答案 2 :(得分:0)

添加方法以检查A是否为获胜者:

public bool IsAWinner(string x0value, string x1value, string x2value)
{
    if (x0value == "A" && x1value == "A" && x2value == "A")        
        return true;
    return false;
}

从您的UI代码中调用此代码来检查A是否是赢家,如果不是,则B是获胜者。

这个想法是在这个方法中不使用windows控件;这样就可以测试它(从UI中松散耦合)。

所以从你的UI:

if (IsAWinner(label[x,0].theValue(), label[x,1].theValue(),label[x,2].theValue))
    MessageBox.Show("A Wins!");
else
    MessageBox.Show("B wins!");

另外,不要忘记添加一些异常处理。

答案 3 :(得分:-2)

虽然我从未使用过C#,但我会想象不需要第二个If语句。如果A获胜,那么B输了,而如果B赢了A输了。

如果A获胜......其他B获胜!

抱歉,我不能给你一个代码示例,C#不是我的事。