首页 > 解决方案 > 二十一点获胜条件

问题描述

我需要一些帮助来解决一个小问题。当我赢或输时,满足两个条件并出现两次消息框。在我的记分牌中,将一场胜利或失败算作两场胜利或失败。有时会发生这种情况,有时会正常工作。我尝试放置一个端点,我尝试对所有端点使用 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

标签: c#winforms

解决方案


推荐阅读