diff --git a/bin/p2.py b/bin/p2.py new file mode 100644 index 0000000..ff91caa --- /dev/null +++ b/bin/p2.py @@ -0,0 +1,13 @@ +import sys + +from maze import parse_maze, CS235Maze + +m = parse_maze(sys.argv[1]) +assert m[7][0][0] == 0 +assert m[7][3][0] == 1 +assert m[7][0][1] == 0 +assert m[3][3][3] == 1 +assert m[5][2][6] == 1 +assert m[7][5][4] == 0 + +print CS235Maze(m) diff --git a/maze/__init__.py b/maze/__init__.py index 15237aa..90670ef 100644 --- a/maze/__init__.py +++ b/maze/__init__.py @@ -1,6 +1,24 @@ +import copy import random +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 = [[[0] * size] * size] * size for i in xrange(size): @@ -8,10 +26,23 @@ def make_maze(size=8): r[i][j] = [random.randint(0, 1) for i in xrange(size)] r[0][0][0] = 1 r[7][7][7] = 1 - return r + return CS235Maze(r, size) def parse_maze(filename): f = open(filename, 'r') t = f.read() - return [[int(j) for j in i.split()] for i in t.split('\n\n') if i] + soilded = [[[int(i) for i in j.split()] + for j in k.split('\n')] + for k in t.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