Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 我的游戏的Visual Basic帮助_Vb.net - Fatal编程技术网

Vb.net 我的游戏的Visual Basic帮助

Vb.net 我的游戏的Visual Basic帮助,vb.net,Vb.net,我正在用Visual Basic构建一个名为战舰的游戏。我有100个按钮(10行x 10列),我希望用户能够单击一个按钮,并为特定按钮创建一个名为IsCreated(布尔值)的函数 两个问题: 1.如何创建此函数? 2.如何使已创建的按钮从“真”变为“假” 一种非常基本的方法是为每个按钮分配一个数字,并在onClick()的函数调用中使用该数字。你只需要一个全局布尔数组(我使用boardPosition) 私有子按钮1\u单击(ByVal sender作为对象,ByVal e作为System.

我正在用Visual Basic构建一个名为战舰的游戏。我有100个按钮(10行x 10列),我希望用户能够单击一个按钮,并为特定按钮创建一个名为
IsCreated
(布尔值)的函数

两个问题:
1.如何创建此函数?

2.如何使已创建的按钮从“真”变为“假”

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


私有子按钮1\u单击(ByVal sender作为对象,ByVal e作为System.EventArgs)\处理按钮1。单击
boardPosition(1)=已创建(1)
末端接头

那么你只要:

已创建受保护的函数(byVal按钮数字单击为整数)
如果boardPosition(按钮编号已单击),则
返回true
否则
返回false
如果
则结束 端函数

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


编辑:清理。

我会以编程方式创建按钮,并将它们添加到字典或列表中以跟踪它们。您可能需要某种类来保存关于每个网格单元的所有信息,而不仅仅是一个布尔数组。将以下内容添加到空白表单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

好的,这有帮助。我知道它不优雅,但桌面布局面板没有任何帮助。谢谢你的帮助,不过我很感激!