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 |
|||||
![]()
|
|