C#Dice应用程序,带有模具图像

时间:2012-02-19 01:55:45

标签: c#

问题:创建一个模拟滚动一对骰子的应用程序。当用户单击按钮时,应用程序应生成两个随机数,每个数字在1到6的范围内,以表示骰子的值。使用PictureBox控件显示骰子。

我目前有6个图片框,其图片框名为“dice1PictureBox”,“dice2PictureBox”等,最多6个。

这是我到目前为止编写的代码。在这一点上我完全迷失了。我也非常擅长编程,非常感谢任何帮助。提前谢谢。

    private void rollButton_Click(object sender, EventArgs e)
    {
        int diceOne;
        int diceTwo;

        Random rand = new Random();

        diceOne = rand.Next(3);

        if (diceOne == 0)
        {
            diceOne.Visible = true;
        }
        else (diceOne == 1)
        {
            diceOne.Visible = true;
        }
         else (diceOne == 2)
        {
            diceOne.Visible = true;
        }

        diceTwo = rand.Next(4) + 6;

        if (diceOne == 3)
        {
            diceOne.Visible = true;
        }
        else (diceOne == 4)
        {
            diceOne.Visible = true;
        }
         else (diceOne == 5)
        {
            diceOne.Visible = true;
        }
    }
}

}

2 个答案:

答案 0 :(得分:2)

让我们来看看这里的一般想法。我不会打扰你现在正在做的事情,因为它不会做你想做的事情。周期。

你需要的只是两个 PictureBoxes,每个模具一个。然后,您有6个图像,每个图像对应一个可能的值。我建议将图像保存在数组中或者可能是ImageList(无论哪种方式,我们称之为images);它会使事情变得更简单。

滚动时,对于每个骰子,你会说roll = rand.Next(6);之类的东西。然后roll将对应于数组中图像的索引。您将相应PictureBox的Image设置为images[roll](如果您使用的是ImageList,则设置为images.Images[roll])。无需弄乱Visible;两个PictureBox将始终可见。

请注意,当您考虑roll的实际值时,它将从0到5.添加1以获取人们期望看到的值。

答案 1 :(得分:1)

一些指针没有完全告诉你如何编码它,因为这似乎是一个家庭作业。

  • MSDN: if-else - 您没有正确构建if-else语句。具体来说,你不能使用if / else / else。
  • MSDN: Random.Next(Int32) - 您的第一个骰子将始终返回3或更少的值。你的第二个骰子将始终返回6或更高的值(你将6加到值为0-4)。这些不符合您的要求。
  • 您正在Visible设置int属性。看起来你混淆了代表模具价值的整数和图像。