Visual Basic帮助我的游戏

时间:2011-03-02 02:10:29

标签: vb.net

我正在用Visual Basic构建一个名为Battleship的游戏。我有100个按钮(10行×10列)和我希望用户做的,能够点击一个按钮,一个名为IsCreated的函数(这是一个布尔值)对于某个按钮变为True。

两个问题:
1.如何创建此功能?
2.如何使点击的按钮让IsCreated从true转为false?

2 个答案:

答案 0 :(得分:1)

一种非常基本的方法是为每个按钮分配一个数字和一个数字。在onClick()的函数调用中使用它。你只有一个全局的布尔数组(我用过boardPosition)

Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles button1.Click
   boardPosition(1) = IsCreated(1)
End Sub

然后就是:

Protected Function IsCreated(byVal buttonNumberClicked as integer)
    If boardPosition(buttonNumberClicked) Then
       return true
    else
       return false
    End If
End Function

这假设您刚刚创建了100个按钮......这不是一个优雅的解决方案,但它会起作用。

编辑:清理。

答案 1 :(得分:1)

我会以编程方式创建按钮,并将它们添加到字典或列表中以跟踪它们。您可能希望某种类能够保存有关每个网格单元的所有信息,而不仅仅是一组布尔值。将以下内容添加到空白表单1中。

Dim IsCreated(99) As Boolean
Dim Buttons As New Dictionary(Of String, Button)

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    For i As Integer = 0 To 99
        Dim B As New Button
        Me.Controls.Add(B)
        B.Height = 30
        B.Width = 40
        B.Left = (i Mod 10) * 41
        B.Top = (i \ 10) * 31
        B.Text = Chr((i \ 10) + Asc("A")) & i Mod 10 + 1
        Buttons.Add(B.Text, B)
        B.Tag = i
        AddHandler B.Click, AddressOf Button_Click
    Next


End Sub

Private Sub Button_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim B As Button = sender
    IsCreated(B.Tag) = True
    B.BackColor = Color.Red
End Sub