如何为Lucky 7(vb游戏)制作一个比分计分器

时间:2013-04-18 15:16:22

标签: vb.net visual-studio-2010

我做了一个简单的游戏,幸运7使用vb代码在visual basic上。分数计数器不能正常工作,例如,如果我赢了一次游戏(在3个插槽中获得7个),我得到10分,分数标签变为10.如果我继续按下旋转按钮并赢再次,分数标签仍然保留在数字10上,并且不会变为20。

以下是我写的旋转按钮的代码:

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

    Dim rand = New Random
    Dim slots = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    Dim score = 0
    For i = 0 To 2
        slots(i) = rand.Next(10)
    Next

    Label1.Text = (slots(0).ToString)
    Label2.Text = (slots(1).ToString)
    Label3.Text = (slots(2).ToString)

    If slots(0) = 7 Or slots(1) = 7 Or slots(2) = 7 Then
        score = score + 10  
        Label4.Text = (score.ToString)
        PictureBox1.Visible = True 
    Else
        PictureBox1.Visible = False
    End If

End Sub

我是否需要添加一个while循环或类似的东西,以便在我赢得游戏时让分数发生变化?

1 个答案:

答案 0 :(得分:4)

您需要在类级别移动变量声明。

目前,您在单击按钮时创建它。因此,每次单击时,都会删除score变量并再次创建。

移动

Dim score = 0

行如下:

'Assuming your Form is called Form1
Public Class Form1 Inherits Form

Dim score = 0

     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
     'Your current code
     End Sub

 End Class

你的问题已经解决了。

您应该阅读一些documentation about scopes

关于你的小错误的摘录:

如果在过程中声明变量,但在任何If语句之外,则范围为End Sub或End Function。变量的生命周期是程序结束。