import os
import maze
display_prog = \'display\' # Command to execute to display images.
class Scene:
def __init__(self,name="svg",height=400,width=400):
self.name = name
self.items = []
self.height = height
self.width = width
return
def add(self,item): self.items.append(item)
def setDims(self, w, h):
self.width = w;
self.height = h;
def strarray(self):
var = ["<?xml version=\\"1.0\\"?>\\n",
"<svg height=\\"%d\\" width=\\"%d\\" >\\n" % (self.height,self.width),
" <g style=\\"fill-opacity:1.0; stroke:black;\\n",
" stroke-width:0.1;\\">\\n"]
for item in self.items: var += item.strarray()
var += [" </g>\\n</svg>\\n"]
return var
def write_svg(self,filename=None):
if filename:
self.svgname = filename
else:
self.svgname = self.name + ".svg"
file = open(self.svgname,\'w\')
file.writelines(self.strarray())
file.close()
return
def display(self,prog=display_prog):
os.system("%s %s" % (prog,self.svgname))
return
class Rectangle:
def __init__(self,origin,height,width,color):
self.origin = origin
self.height = height
self.width = width
self.color = color
return
def strarray(self):
return [" <rect x=\\"%d\\" y=\\"%d\\" height=\\"%d\\"\\n" %\\
(self.origin[0],self.origin[1],self.height),
" width=\\"%d\\" style=\\"fill:%s;\\" />\\n" %\\
(self.width,colorstr(self.color))]
def colorstr(rgb): return "#%x%x%x" % (rgb[0]/16,rgb[1]/16,rgb[2]/16)
def run():
os.system("cls")
scene = Scene(\'maze\')
size = int(raw_input(\'enter maze image size(px): \'))
if size <= 0: sz = 800
block = int(raw_input(\'enter block size(px): \'))
if block < 1 or block > size: block = 5
maze.buildMaze(scene, size, block)
scene.write_svg()
if __name__ == \'__main__\':
print "This program generates a SVG maze."
run()