我已经知道可以设置路径和墙壁的数组了,但是它无法设置看起来像迷宫的路径,目前我不知道如何进行优化。任何想法,对此将不胜感激。另外,当我按下按钮生成迷宫时,它卡住了,什么也没做,相反,我需要它再次运行代码以生成另一个迷宫,对此部分的任何帮助都欢迎。谢谢。 到目前为止,这是代码:
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
注意:我必须用标签矩阵(“#”作为墙和“。”)制作此迷宫。作为途径;这意味着大多数算法都无法使用,因为它们都是基于网格的,这就是为什么它如此难以工作的原因。