That demo is unlikely to be any use without the source code - and as posters mentioned on that thread the demo crashes unless your machine happens to support the display mode used.
On a more positive note, I'm sure I've seen demos of random mazes with code somewhere on this site. I'll see if I can find one.
The short answer to your question is "Yes, you can generate random mazes in DBPro."
Edit Just found a copy of a webpage that might help you - attached.
Here's a simple maze demo of mine. You'll have to Google "Gabriel triangulation" to find out what it's doing.
` Program to test a function to create a gabriel triangulation.
` Uses IanM's plugins.
` Created 6 November 2009, edited 9 November 2009.
set display mode desktop width(), desktop height(), 32
sync on : sync rate 60 : sync
type position
x as integer
y as integer
endtype
type pair
a as integer
b as integer
endtype
nPoints = 200
xSize = 300
ySize = 300
random seed 140549
dim points(nPoints) as position
dim pairs(nPoints*(nPoints-1)) as pair
create bitmap 1, xSize, ySize
set current bitmap 0
repeat
makePoints(nPoints , xSize, ySize)
drawLines(nPoints, xSize, ySize)
cls 0
tw = 0.7 * desktop height()
th = tw
xs = (desktop width() - tw)/2
ys = (desktop height() - th)/2
copy bitmap 1, 0, 0, xSize, ySize, 0, xs, ys, xs + tw, ys + th
center text desktop width()/2, ys + th + 40, "Press <return> for new layout, <space> to exit"
sync
wait key
while returnkey() : endwhile
until spacekey()
end
function makePoints(n as integer, sX as integer, sY as integer)
for z = 1 to n
points(z).x = random(sX)
points(z).y = random(sY)
next z
endfunction
function drawPoints(n as integer, sX as integer, sY as integer)
set current bitmap 1
cls rgb(64, 64, 64)
lock pixels
for z = 1 to n
dot points(z).x, points(z).y, rgb(255, 0, 0)
next z
unlock pixels
set current bitmap 0
endfunction
function drawLines(n as integer, sX as integer, sY as integer)
` set current bitmap 0
` first find the pairs of points to join
n1 = n-1
nPairs = 0
` loop through all possible pairs (this is the "sledgehammer" approach)
for z1 = 1 to n1
x1 = points(z1).x
y1 = points(z1).y
for z2 = z1+1 to n
x2 = points(z2).x
y2 = points(z2).y
mx# = (x1+x2)/2.0
my# = (y1+y2)/2.0
dx# = x1-mx#
dy# = y1-my#
r2# = dx#*dx# + dy#*dy#
` test all other points
gabriel = 1
for z = 0 to n
if (z<>z1) and (z<>z2)
dx# = points(z).x - mx#
dy# = points(z).y - my#
if dx#*dx# + dy#*dy# < r2#
gabriel = 0
z = n+1
endif
endif
next z
if gabriel
` then add to gabriel triangulation
inc nPairs
pairs(nPairs).a = z1
pairs(nPairs).b = z2
endif
next z2
next z1
set current bitmap 1
cls rgb(64, 64, 64)
` draw lines first - without using lock pixels (causes crash :) )
ink rgb(0, 255, 0), 0
for z = 1 to nPairs
x1 = points(pairs(z).a).x
y1 = points(pairs(z).a).y
x2 = points(pairs(z).b).x
y2 = points(pairs(z).b).y
line x1, y1, x2, y2
next z
ink rgb(255, 255, 255), 0
` draw the points
lock pixels
ink rgb(255, 0, 0), 0
for z = 1 to n
`fill circle points(z).x, points(z).y, 3, rgb(255, 0, 0)
circle points(z).x, points(z).y, 3
next z
unlock pixels
set current bitmap 0
endfunction
Edit2 Here's a better random maze link - try the code posted by calcyman. Just use the arrow keys to move around:
maze generator
Edit3 Here's an even better one posted by Spooky on a thread by Muncher:
Spooky maze code