问题 Windows多种形式(剪刀,石头和纸制游戏)

梦想家

新成员
已加入
2017年3月26日
留言内容
3
编程经验
Beginner
我需要制作三种不同的表格来加载:
1-结果平局时的表格,
2-a当计算机获胜时,
3-a当用户获胜时,
我现在正在尝试一种形式:结果是平局时。
但是,它不起作用,因为我对-checkresult();-方法使用了while循环,并且当分数达到20时我中断了它。
谁能帮帮我吗?!
源代码:

私人无效btnPlay_Click(对象发送者,EventArgs e)
{
随机r =新的Random(); //创建一个新的随机对象r
compChoice = r.Next(3)+ 1; //使用r选取1到3之间的数字
如果(compChoice == 1)
{
pbxComputer.Image = Image.FromFile("Scissors.jpg");
}

否则(compChoice == 2)
{
pbxComputer.Image = Image.FromFile("Paper.jpg");

}
否则(compChoice == 3)
{
pbxComputer.Image = Image.FromFile("Stone.jpg");
}

while(userScore!= 20 || compScore!= 20)
{
checkResult(); //调用checkResult();方法
如果(compScore == 20 || userScore == 20)
{
休息;
}
}
结束();
}
私有无效checkResult()
{
lblResult.BackColor = 白颜色;
lblUserScore.BackColor = 白颜色;
lblComputerScore.BackColor = 白颜色;

如果(compChoice == userChoice)
{
lblResult.Text = "It's a DRAW!";
compScore + = 1;
userScore + = 1;
lblResult.ForeColor = 颜色:黑色;
}
否则(compChoice == 1&&userChoice == 2)//剪刀/纸
{
lblResult.Text = "Computer WINS!";
compScore + = 2;
lblResult.ForeColor = 颜色:黑色;
}
否则(compChoice == 1&&userChoice == 3)//剪刀/石头
{
lblResult.Text = "You WIN!";
userScore + = 2;
lblResult.BackColor = 红色;
lblResult.ForeColor = Color.Yellow;
}
否则(compChoice == 2&&userChoice == 1)//纸/剪刀
{
lblResult.Text = "You WIN!";
userScore + = 2;
lblResult.BackColor = 红色;
lblResult.ForeColor = Color.Yellow;
}
否则(compChoice == 2&&userChoice == 3)//纸张/石头
{
lblResult.Text = "Computer WINS!";
compScore + = 2;
lblResult.ForeColor = 颜色:黑色;
}
否则(compChoice == 3&&userChoice == 1)//石头/剪刀
{
lblResult.Text = "Computer WINs!";
compScore + = 2;
lblResult.ForeColor = 颜色:黑色;
}
否则(compChoice == 3&&userChoice == 2)//石头/纸
{
lblResult.Text = "You WIN!";
userScore + = 2;
lblResult.BackColor = 红色;
lblResult.ForeColor = Color.Yellow;
}
lblComputerScore.Text = "Computer Score \n"+ compScore.ToString();
lblUserScore.Text = "User Score \n"+ userScore.ToString();
}
私人无效finish()
{
if(compScore == userScore)
{
//加载绘图表格
frmDraw draw =新的frmDraw();
draw.ShowDialog();
}
}
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
首先,您使代码很难阅读。请在适当的格式标记内以纯文本形式发布代码,即

[xcode = c#]您的代码在这里[/ xcode]

在我们看不到您的代码之前,很难确切地说出您应该更改的内容,但是我看不到循环是如何合适的。当您单击一个按钮时,您似乎正在转一圈,因此每次发生一次都应该转一次。
 

梦想家

新成员
已加入
2017年3月26日
留言内容
3
编程经验
Beginner
(Scissors,Stone,Paper-Game)C#Windows Form应用程序的屏幕截图。

首先,您使代码很难阅读。请在适当的格式标记内以纯文本形式发布代码,即[xcode = c#]您的代码在这里[/ xcode]直到我们阅读您的代码,很难确切说明您应更改的内容,但我看不到循环如何将是适当的。当您单击一个按钮时,您似乎正在转一圈,因此每次发生一次都应该转一次。
我附上了该代码的屏幕截图,希望能给我一些建议。
非常感谢。
 

附件

  • 截图(670).png
    截图(670).png
    95.7 KB · Views: 41
  • 截图(672).png
    截图(672).png
    101.3 KB · Views: 35
  • 截图(673).png
    截图(673).png
    104 KB · Views: 39
  • 截图(674).png
    截图(674).png
    104.2 KB · Views: 40
Last edited:

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
当我问您将代码以纯文本格式发布在格式标记中时,实际上是指以纯文本格式将代码发布在格式标记中,而不是屏幕截图。如果我们需要测试您的代码,则无法从屏幕截图中复制并粘贴它。
 

梦想家

新成员
已加入
2017年3月26日
留言内容
3
编程经验
Beginner
当我问您将代码以纯文本格式发布在格式标记中时,实际上是指以纯文本格式将代码发布在格式标记中,而不是屏幕截图。如果我们需要测试您的代码,则无法从屏幕截图中复制并粘贴它。
        int userChoice, compChoice;
        int userScore = 0;
        int compScore = 0;
    
        public frmSPSGame()
        {
            InitializeComponent();
        }


        private void rbnScissors_CheckedChanged(object sender, EventArgs e)
        {
            pbxUser.Image = Image.FromFile("Scissors.jpg");
            userChoice = 1;
        }


        private void rbnPaper_CheckedChanged(object sender, EventArgs e)
        {
            pbxUser.Image = Image.FromFile("Paper.jpg");
            userChoice = 2;
        }


        private void rbnStone_CheckedChanged(object sender, EventArgs e)
        {
            pbxUser.Image = Image.FromFile("Stone.jpg");
            userChoice = 3;
        }


        私人无效btnPlay_Click(对象发送者,EventArgs e)
        {
            随机r =新的Random(); //创建一个新的随机对象r
            compChoice = r.Next(3)+ 1; //使用r选取1到3之间的数字
            if (compChoice == 1)
            {
                pbxComputer.Image = Image.FromFile("Scissors.jpg");
            }


            否则(compChoice == 2)
            {
                pbxComputer.Image = Image.FromFile("Paper.jpg");


            }
            否则(compChoice == 3)
            {
                pbxComputer.Image = Image.FromFile("Stone.jpg");
            }
            while(compScore != 20 || userScore != 20 ) //meaning call the checkresult(); method
                //as long as the scores didn't reach 20
            {
                checkResult(); //调用checkResult();方法
                if(compScore == 20 || userScore == 20) //however, if the score reaches 20 
                    //call the finish(); method, and break from the loop 
                {
                    finish();
                    break;
                }
            }
               
              
        }
        私有无效checkResult()
        {
            lblResult.BackColor = Color.White;
            lblUserScore.BackColor = Color.White;
            lblComputerScore.BackColor = Color.White;
           
                如果(compChoice == userChoice)
                {
                    lblResult.Text = "It's a DRAW!";
                    compScore += 1;
                    userScore += 1;
                    lblResult.ForeColor = Color.Black;
                }
                否则(compChoice == 1&&userChoice == 2)//剪刀/纸
                {
                    lblResult.Text = "Computer WINS!";
                    compScore += 2;
                    lblResult.ForeColor = Color.Black;
                }
                否则(compChoice == 1&&userChoice == 3)//剪刀/石头
                {
                    lblResult.Text = "You WIN!";
                    userScore += 2;
                    lblResult.BackColor = Color.Red;
                    lblResult.ForeColor = Color.Yellow;
                }
                否则(compChoice == 2&&userChoice == 1)//纸/剪刀
                {
                    lblResult.Text = "You WIN!";
                    userScore += 2;
                    lblResult.BackColor = Color.Red;
                    lblResult.ForeColor = Color.Yellow;
                }
                否则(compChoice == 2&&userChoice == 3)//纸张/石头
                {
                    lblResult.Text = "Computer WINS!";
                    compScore += 2;
                    lblResult.ForeColor = Color.Black;
                }
                否则(compChoice == 3&&userChoice == 1)//石头/剪刀
                {
                    lblResult.Text = "Computer WINs!";
                    compScore += 2;
                    lblResult.ForeColor = Color.Black;
                }
                否则(compChoice == 3&&userChoice == 2)//石头/纸
                {
                    lblResult.Text = "You WIN!";
                    userScore += 2;
                    lblResult.BackColor = Color.Red;
                    lblResult.ForeColor = Color.Yellow;
                }
                lblComputerScore.Text = "Computer Score \n"+ compScore.ToString();
                lblUserScore.Text = "User Score \n"+ userScore.ToString();


        }
       私人无效finish()
        {
            if(compScore == userScore)
            {
                //load the Draw form
                frmDraw draw =新的frmDraw();
                draw.ShowDialog();
            }
        }


        private void lblResult_Click(object sender, EventArgs e)
        {


        }


        private void frmSPSGame_Load(object sender, EventArgs e)
        {
            frmSplash SScreen = new frmSplash();
            SScreen.ShowDialog();
            pbxUser.Image = Image.FromFile("sps1.jpg");
            pbxComputer.Image = Image.FromFile("sps3.jpg");
        }


        private void btnQuit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
 
最佳 底部