implemented parsing and printing of mazes
This commit is contained in:
parent
612fb5f38e
commit
360668c4d3
13
bin/p2.py
Normal file
13
bin/p2.py
Normal file
@ -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)
|
@ -1,6 +1,24 @@
|
|||||||
|
import copy
|
||||||
import random
|
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):
|
def make_maze(size=8):
|
||||||
r = [[[0] * size] * size] * size
|
r = [[[0] * size] * size] * size
|
||||||
for i in xrange(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[i][j] = [random.randint(0, 1) for i in xrange(size)]
|
||||||
r[0][0][0] = 1
|
r[0][0][0] = 1
|
||||||
r[7][7][7] = 1
|
r[7][7][7] = 1
|
||||||
return r
|
return CS235Maze(r, size)
|
||||||
|
|
||||||
|
|
||||||
def parse_maze(filename):
|
def parse_maze(filename):
|
||||||
f = open(filename, 'r')
|
f = open(filename, 'r')
|
||||||
t = f.read()
|
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
|
||||||
|
Loading…
Reference in New Issue
Block a user