视觉基础ReRoll如果双重登陆

时间:2017-03-14 02:43:15

标签: vb.net random

我的代码遇到了问题。在这里我必须做到,所以如果intNum1和{ intNum2创建一个必须重新启动的双精度,直到它不是双精度。这是我目前的代码。问题是当我运行程序时,intNum1和amp; intNum2碰巧在相同的数字上滚动,创建了它不会自动重新滚动的double。基本上两个intNum都不应该相互平等 我确定它很可能是非常简单的,但任何帮助将不胜感激。

    Dim randGen As New Random
    Dim intNum1 As Integer
    Dim intNum2 As Integer
    Dim intTotal As Integer
    Dim intRoll As Integer


    intNum1 = randGen.Next(1, 7)
    intNum2 = randGen.Next(1, 7)


    Select Case intNum1
        Case 1
            PicDie1.Image = picOneDot.Image
        Case 2
            PicDie1.Image = picTwoDots.Image
        Case 3
            PicDie1.Image = picThreeDots.Image
        Case 4
            PicDie1.Image = picFourDots.Image
        Case 5
            PicDie1.Image = picFiveDots.Image
        Case 6
            PicDie1.Image = picSixDots.Image
    End Select

    Select Case intNum2
        Case 1
            picDie2.Image = picOneDot.Image
        Case 2
            picDie2.Image = picTwoDots.Image
        Case 3
            picDie2.Image = picThreeDots.Image
        Case 4
            picDie2.Image = picFourDots.Image
        Case 5
            picDie2.Image = picFiveDots.Image
        Case 6
            picDie2.Image = picSixDots.Image
    End Select

    Select Case intRoll
        Case 1
            If intNum1 = intNum2 Or
            intNum2 = intNum1 Then
                randGen.Next(1, 7)
            End If
    End Select


    intTotal = intNum1 + intNum2
    lblTotal.Text = intTotal.ToString


End Sub

3 个答案:

答案 0 :(得分:0)

您的代码中存在多个问题。不能在评论中包含以下所有要点,因此请使用此占位符。

  1. 当您在方法中初始化Dim randGen As New Random并且可能多次调用此方法时,生成的随机数不会有所不同。请参阅article
  2. intRoll永远不会被初始化。所以它永远是零。因此,Select Case intRoll永远不会评估为Case 1
  3. 如果条件If intNum1 = intNum2 Or intNum2 = intNum1 Then具有两次相同的条件评估。 If intNum1 = intNum2 Then应符合您的目的。
  4. 在使用randGen.Next(1, 7)的If条件中,此值永远不会分配给intNum1intNum2的任何变量。即使它分配了你需要确保它不再相同,随机数可以再次相同。
  5. 建议:删除选择案例并将其替换为If intRoll = 1 And intNum1 = intNum2 Then

答案 1 :(得分:0)

如果num1和num2相同

 @Override
    public void onClick(View v) {
        new Thread() {
            @Override
            public void run() {
                try
                {
                    Toast.makeText(context, "hiiiiiiiiiiiiiii", Toast.LENGTH_SHORT).show();
                    sleep(5000);
                    Toast.makeText(context, "hiiiiiiiiiiiiiii", Toast.LENGTH_SHORT).show();
                    sleep(5000);
                    Toast.makeText(context, "hiiiiiiiiiiiiiii", Toast.LENGTH_SHORT).show();
                } catch (Exception e) {
                    Toast.makeText(context, "Exception", Toast.LENGTH_SHORT).show();
                }
            }
        }.start();

答案 2 :(得分:0)

使用在intnum1和intnum2相等的情况下运行的while循环

'初始化变量,使它们在首次运行时相等

Dim randGen as New Random
Dim intNum1 as Integer = 0
Dim intNum2 as Integer = 0

While intNum1 = intNum2 'reroll until the are not equal
   intNum1 = randGen.Next(1,7)
   intNum2 = randGen.Next(1,7)
End While

'process your select case to set your images based on their values