我想设计一个检查玩家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!");
}
答案 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#不是我的事。