1

我使用 vb 代码制作了一个简单的游戏,幸运 7 在 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循环或类似的东西来使分数随着我赢得比赛而改变多次?

4

1 回答 1

5

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

目前,您在单击按钮时创建它。因此,每次单击时,都会删除该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

你的问题就解决了。

您可能应该阅读一些有关范围的文档

关于你的小错误的摘录:

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

于 2013-04-18T15:28:36.107 回答