|
Maze generatorDisplay a Maze in the notepad
File Name : maze.vbs Requirement : none Author : Jean-Luc Antoine Submitted : 01/09/2001 Category : Other Preview : Click here ! Dim M(9,9)
Sub g(byval x, byval y, d)
i = x-1
j = y-1
u = x+1
v = y+1
If d<4 Then M(x,y) = M(x,y) Or 2^d
Select Case d
Case 0
M(x,j) = M(x,j) Or 4
Case 1
M(u,y) = M(u,y) Or 8
Case 2
M(x,v) = M(x,v) Or 1
Case 3
M(i,y) = M(i,y) Or 2
End Select
If x<L And x*y>0 And y<H Then
While (M(x,y) And Not 2^d)=0
Select Case int(4*Rnd)
Case 0
If M(x,j) = 0 Then g x,j,2 Else If M(u,y)*M(x,v)*M(i,y)>0 Then M(x,y)=16
Case 1
If M(u,y) = 0 Then g u,y,3 Else If M(x,v)*M(i,y)*M(x,j)>0 Then M(x,y)=16
Case 2
If M(x,v) = 0 Then g x,v,0 Else If M(i,y)*M(x,j)*M(u,y)>0 Then M(x,y)=16
Case 3
If M(i,y) = 0 Then g i,y,1 Else If M(x,j)*M(u,y)*M(x,v)>0 Then M(x,y)=16
End Select
Wend
If M(x+1,y) = 0 Then g x+1,y,3
If M(x,y+1) = 0 Then g x,y+1,0
If M(x-1,y) = 0 Then g x-1,y,1
If M(x,y-1) = 0 Then g x,y-1,2
End If
End Sub
L = 9
H = 9
Randomize
g 6,5,4
Set i = CreateObject("Scripting.FileSystemObject")
j = "c:\$"
Set u = i.CreateTextFile(j)
For y = 0 To H
For x = 0 To L
u.Write("#" & Chr(61-(M(x,y) And 1)*29))
Next
u.Write("#" & vbCrLf & "|")
For x = 0 To L
u.Write(" " & Chr(124-(M(x,y) And 2)*46))
Next
u.Write(vbCrLf)
Next
u.Write(String(L*2+3,"#") & " (c) JLA")
u.Close
Set u = WScript.CreateObject("WScript.Shell")
u.Run "notepad " & j, 3, -1
i.DeleteFile j
|
|||||
|
|