生成迷宫的程序
来源:互联网 发布:淘宝网店版怎么进入 编辑:程序博客网 时间:2024/04/30 08:12
Private Sub form_Click()
szx = 5000: szy = 5000: tr = 20: L = 50: mx = szx / L: my = szy / L: Dim A(1001,
While Not (X = 2 And Y = 1)
If A(X - 1, Y) * A(X, Y - 1) * A(X, Y + 1) * A(X + 1, Y) = 0 Then GoTo 70
For I = 0 To 3: XX = X + (I = 0) - (I = 2): YY = Y + (I = 1) - (I = 3): If A(XX,
Next: Return
X = XX: Y = YY: S = A(X, Y): GoTo 90
R = Int(Rnd(1) * 4): XX = X + (R = 0) - (R = 2): YY = Y + (R = 1) - (R = 3): If
X = XX: Y = YY: S = S + 1: A(X, Y) = S
Wend: Return
For I = 0 To mx + 1: A(I, 0) = -1: A(I, my + 1) = -1: Next: For I = 0 To my + 1: A(0, I) = -1: A(mx + 1, I) = -1: Next
X = mx - 1: Y = my: S = 1: A(X, Y) = S: GoSub 20
For Q = my To 1 Step -1: For P = mx To 1 Step -1: If A(P, Q) > 0 Then GoTo 160
R = Int(Rnd(1) * 4): PP = P + (R = 0) - (R = 2): QQ = Q + (R = 1) - (R = 3): If A(PP, QQ) < 1 Then GoTo 140
X = P: Y = Q: S = A(PP, QQ) * 2 + 1000: A(X, Y) = S: GoSub 20: F = 1
Next P, Q: If F Then F = 0: GoTo 130
Cls
For X = 1 To mx: For Y = 1 To my
T = Abs(A(X, Y) - A(X + 1, Y)): If T <= 1 Or T - 1000 = A(X, Y) Or T - 1000 = A(X + 1, Y) Then GoTo 230
Line (X * L + tr, Y * L - L + tr)-(X * L + tr, Y * L + tr)
T = Abs(A(X, Y) - A(X, Y + 1)): If T <= 1 Or T - 1000 = A(X, Y) Or T - 1000 = A(X, Y + 1) Then GoTo 240
Line (X * L - L + tr, Y * L + tr)-(X * L + tr, Y * L + tr)
Next Y, X
Line (tr, tr)-(tr + szx, tr + szy), , B: Line (L + tr, tr)-(L + L + tr, tr), &H8000000F: Line (szx - L + tr, szy + tr)-(szx - L - L + tr, szy + tr), &H8000000F
GoTo 1010
While Not (X = 2 And Y = 1)
For I = 1 To 4: For J = 1 To 8: Print A(J, I); " ";: Next: Print INKEY$;: Next: Return
Wend
End Sub
szx = 5000: szy = 5000: tr = 20: L = 50: mx = szx / L: my = szy / L: Dim A(1001,
While Not (X = 2 And Y = 1)
If A(X - 1, Y) * A(X, Y - 1) * A(X, Y + 1) * A(X + 1, Y) = 0 Then GoTo 70
For I = 0 To 3: XX = X + (I = 0) - (I = 2): YY = Y + (I = 1) - (I = 3): If A(XX,
Next: Return
X = XX: Y = YY: S = A(X, Y): GoTo 90
R = Int(Rnd(1) * 4): XX = X + (R = 0) - (R = 2): YY = Y + (R = 1) - (R = 3): If
X = XX: Y = YY: S = S + 1: A(X, Y) = S
Wend: Return
For I = 0 To mx + 1: A(I, 0) = -1: A(I, my + 1) = -1: Next: For I = 0 To my + 1: A(0, I) = -1: A(mx + 1, I) = -1: Next
X = mx - 1: Y = my: S = 1: A(X, Y) = S: GoSub 20
For Q = my To 1 Step -1: For P = mx To 1 Step -1: If A(P, Q) > 0 Then GoTo 160
R = Int(Rnd(1) * 4): PP = P + (R = 0) - (R = 2): QQ = Q + (R = 1) - (R = 3): If A(PP, QQ) < 1 Then GoTo 140
X = P: Y = Q: S = A(PP, QQ) * 2 + 1000: A(X, Y) = S: GoSub 20: F = 1
Next P, Q: If F Then F = 0: GoTo 130
Cls
For X = 1 To mx: For Y = 1 To my
T = Abs(A(X, Y) - A(X + 1, Y)): If T <= 1 Or T - 1000 = A(X, Y) Or T - 1000 = A(X + 1, Y) Then GoTo 230
Line (X * L + tr, Y * L - L + tr)-(X * L + tr, Y * L + tr)
T = Abs(A(X, Y) - A(X, Y + 1)): If T <= 1 Or T - 1000 = A(X, Y) Or T - 1000 = A(X, Y + 1) Then GoTo 240
Line (X * L - L + tr, Y * L + tr)-(X * L + tr, Y * L + tr)
Next Y, X
Line (tr, tr)-(tr + szx, tr + szy), , B: Line (L + tr, tr)-(L + L + tr, tr), &H8000000F: Line (szx - L + tr, szy + tr)-(szx - L - L + tr, szy + tr), &H8000000F
GoTo 1010
While Not (X = 2 And Y = 1)
For I = 1 To 4: For J = 1 To 8: Print A(J, I); " ";: Next: Print INKEY$;: Next: Return
Wend
End Sub
- 生成迷宫的程序
- 迷宫自动生成程序
- 一个比较有趣的自动生成迷宫程序.
- CSS生成的迷宫
- 转载的迷宫程序
- 迷宫程序的实现
- 一个生成迷宫的算法
- 一个走迷宫的程序
- 生成迷宫并找出走出迷宫的路径
- 迷宫程序
- C++ 编写的栈解迷宫程序
- 堆栈的应用--迷宫求解程序
- 栈实现迷宫的较完善 程序
- 一个搜索迷宫出路的程序
- 自动生成迷宫
- 一个迷宫生成算法
- 生成迷宫算法
- 迷宫生成算法
- VB快速读取 TextBox 第 N 行的资料
- VB禁止使用 Alt-Tab 或 Ctrl-Alt-Del
- tiny6410的文件安全传输,基于linux的
- 黑马程序员_高新技术2
- 多个USB视频捕捉的连接问题
- 生成迷宫的程序
- C6000系列的C64x+ Cache优化--配置,Cache miss和Cache一致性
- 另一方法转换大小写
- C6000的线性汇编--格式,用法以及优化策略
- VB控件注册 - 利用资源文件将dll、ocx打包进exe文件
- 验证码实现方式-------(js实现验证码):
- VB ListView 控件
- activeMQ+JMS笔记
- VB利用资源文件进行工作