VB用符号创建迷宫

时间:2019-12-11 01:26:38

标签: vb.net

我已经知道可以设置路径和墙壁的数组了,但是它无法设置看起来像迷宫的路径,目前我不知道如何进行优化。任何想法,对此将不胜感激。另外,当我按下按钮生成迷宫时,它卡住了,什么也没做,相反,我需要它再次运行代码以生成另一个迷宫,对此部分的任何帮助都欢迎。谢谢。 到目前为止,这是代码:

Public Class Form1
    Public matrix(23, 23) As String
    Dim counter As Integer = 1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btngen.Click
        For i = 0 To matrix.GetLength(0) - 1
            For j = 0 To matrix.GetLength(0) - 1
                matrix(i, j) = "#"
            Next
        Next
        For i = 0 To matrix.GetLength(0) - 1
            For j = 0 To matrix.GetLength(0) - 1
                If i = 1 And j = 0 Or i = 22 And j = 23 Or i = 1 And j = 1 Or i = 22 And j = 22 Then
                    matrix(i, j) = "."
                Else
                    If i >= 1 And i < 23 And j >= 1 And j < 23 Then
                        Randomize()
                        Dim k As Integer = CInt(Int((2 * Rnd()) + 1))
                        If k = 1 Then
                            matrix(i, j) = "."
                        End If
                    End If
                End If
            Next
        Next
        For i = 0 To matrix.GetLength(0) - 1
            For j = 0 To matrix.GetLength(0) - 1

            Next
        Next
        Dim y As Integer = 9
        For i = 0 To matrix.GetLength(0) - 1
            Dim x As Integer = 9
            For j = 0 To matrix.GetLength(0) - 1
                Dim lbl As New Label()
                lbl.Name = "lbl" & counter
                lbl.Size = New Size(13, 13)
                lbl.Location = New Point(x, y)
                lbl.Text = matrix(i, j)
                Controls.Add(lbl)
                x += 21
                counter += 1
            Next
            y += 13
        Next
    End Sub
End Class

注意:我必须用标签矩阵(“#”作为墙和“。”)制作此迷宫。作为途径;这意味着大多数算法都无法使用,因为它们都是基于网格的,这就是为什么它如此难以工作的原因。

0 个答案:

没有答案