2013-04-18 25 views
1

我已經做了一個簡單的遊戲,幸運7在Visual Basic上使用vb代碼。比分計數器不能正常工作,例如,如果我贏了一次比賽(在3個插槽中的一箇中獲得7分),我得到10分,分數標籤變爲10.如果我繼續按旋轉按鈕並贏得勝利再次,將比分標籤仍然停留在10號,並且不更改爲20如何爲幸運7(vb遊戲)製作一個實時比分計數器

下面是旋轉按鈕我寫的代碼:

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

分數是一個班級變量嗎? – zimdanen

回答

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或結束函數。變量的生命週期直到過程結束。