我做了一个简单的游戏,幸运7在visual basic上使用vb代码。分数计数器不能正常工作,例如,如果我赢得一次游戏(在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循环或类似的东西来让分数随着我赢得游戏而改变多少次?
您需要在类级别移动变量声明。
目前,您创建它时,您点击您的按钮。因此,每次单击时,都要删除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。