c# - 二十一点获胜条件
问题描述
我需要一些帮助来解决一个小问题。当我赢或输时,满足两个条件并出现两次消息框。在我的记分牌中,将一场胜利或失败算作两场胜利或失败。有时会发生这种情况,有时会正常工作。我尝试放置一个端点,我尝试对所有端点使用 if,我尝试使用 else if,是否有另一种方法让游戏只检查一个条件?
public void Scoring(int playerscore, int dealerscore) //scores the dealer and player scores
{
//string winGame = "verloor";
//while (winGame != "Wenner")
//{
if (dealerscore > 16) //check if dealer score is greater than 16
{
if (dealerscore < playerscore && playerscore > 21) //win lose conditions
{
L++; //add one lost to scoreboard
tLose.Text = L.ToString();
MessageBox.Show("Dealer Wins!!", "Lost!", MessageBoxButtons.OK);
// winGame = "Wenner";
goto Einde; //if condition is met go to end marker
}
else if (dealerscore > playerscore && dealerscore < 22) //win lose condition
{
L++;
tLose.Text = L.ToString();
MessageBox.Show("Dealer Wins!!", "Lost!", MessageBoxButtons.OK);
// winGame = "Wenner";
goto Einde;
}
else if (dealerscore == playerscore && playerscore < 22) // draw condition
{
D++; //add one draw to scoreboard
tDraw.Text = D.ToString();
MessageBox.Show("It's a tie!!", "Draw!", MessageBoxButtons.OK);
// winGame = "Wenner";
goto Einde;
}
else if (dealerscore > 21 && playerscore > 21) //win lose condition
{
L++;
tLose.Text = L.ToString();
MessageBox.Show("Dealer Wins!!", "Lost!", MessageBoxButtons.OK);
// winGame = "Wenner";
goto Einde;
}
else if (playerscore > 21) //lose condition
{
L++;
tLose.Text = L.ToString();
MessageBox.Show("Dealer Wins!!", "Lost!", MessageBoxButtons.OK);
// winGame = "Wenner";
goto Einde;
}
else if (dealerscore < playerscore && playerscore < 22) //win lose condition
{
W++; //add win to scoreboard
tWin.Text = W.ToString();
MessageBox.Show("You Win!!", "Winner!", MessageBoxButtons.OK);
//winGame = "Wenner";
goto Einde;
}
else if (dealerscore == playerscore && dealerscore > 21) //win los condition
{
L++;
tLose.Text = L.ToString();
MessageBox.Show("Dealer Wins!!", "Lost!", MessageBoxButtons.OK);
//winGame = "Wenner";
goto Einde;
}
else if (dealerscore > 21 && playerscore < 22) //win lose condition
{
W++;
tWin.Text = W.ToString();
MessageBox.Show("You Win!!", "Winner!", MessageBoxButtons.OK);
//winGame = "Wenner";
goto Einde;
}
else
{
MessageBox.Show("Error", "Error", MessageBoxButtons.OK);
}
}
Einde:; //end marker
解决方案
推荐阅读
- xml - 如何在 XSLT 中循环
- tsql - SQL Server 2012 - 使用游标/动态 SQL 组合是好的做法吗?
- php - Twitter API 搜索主题标签 - 一些缺失
- vba - 单击文本框时显示屏幕键盘
- python - Python - 根据起始 IP 创建 IP 列表
- git - 验证拉取请求时如何防止 VSTS 生成 NuGet 包?
- python - 为什么在使用之前声明这个范围变量?
- mysql - 如何在去年的任何 3 个月内获得最高的销售额
- extjs - extjs 表单、组合和隐藏名称
- python - 以 epsilon 精度将 Pandas DataFrame 条件转换为负、零和正