48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
import copy
|
|
from random import randint
|
|
|
|
|
|
class CS235Maze(object):
|
|
def __init__(self, data, size=8):
|
|
self.data = data
|
|
self.size = size
|
|
|
|
def __str__(self):
|
|
r = derp_transpose(self.data)
|
|
rs = ''
|
|
for i in xrange(self.size):
|
|
for j in xrange(self.size):
|
|
for k in xrange(self.size):
|
|
rs += '{} '.format(r[i][j][k])
|
|
rs += '\n'
|
|
rs += '\n'
|
|
return rs
|
|
|
|
|
|
def make_maze(size=8):
|
|
r = []
|
|
for i in xrange(size):
|
|
r.append([])
|
|
for j in xrange(size):
|
|
r[i].append([randint(0, 1) for k in xrange(size)])
|
|
r[0][0][0] = 1
|
|
r[7][7][7] = 1
|
|
return CS235Maze(r, size)
|
|
|
|
|
|
def parse_maze(maze):
|
|
soilded = [[[int(i) for i in j.split()]
|
|
for j in k.split('\n')]
|
|
for k in maze.split('\n\n') if k]
|
|
cleaned = derp_transpose(soilded)
|
|
return cleaned
|
|
|
|
|
|
def derp_transpose(s, size=8):
|
|
r = copy.deepcopy(s)
|
|
for i in xrange(size):
|
|
for j in xrange(size):
|
|
for k in xrange(size):
|
|
r[i][j][k] = s[k][j][i]
|
|
return r
|