I'm writing a program to read in a maze made up of symbols from a file, that stores each symbol in an Object, and then takes that object and stores it in a 2D array, at the point where the symbol was pulled from in the file, which is then stored in another Object of a different type. However when it gets to the part where it's supposed to read the file and compare, it ignores the code. I know this because I have commented out the function that stores the Object in the array, and the code runs and produces the same output. The 2 classes are called Position and Maze respectively.
def set_maze_map(self, position, rows, columns):
self.maze_map[rows][columns] = position
def read_maze(filename):
rows_current = 0
columns_current = 0
lines_list = []
chars_list = []
with open(filename, 'r') as f1:
for line in f1:
lines_list.append(line)
for char in line:
chars_list.append(char)
rows_total = len(lines_list)
if (len(lines_list) == 0):
columns_total = 0
elif (len(lines_list) == 1):
columns_total = (len(chars_list)/len(lines_list))
else:
columns_total = (len(chars_list)/len(lines_list)) - 1
index_last_line = rows_total - 1
index_last_char = columns_total - 1
maze_obj = Maze(int(rows_total), int(columns_total))
for line in f1:
for char in line:
match (char):
case " ":
maze_obj.set_maze_map(Position(False, False, False, False, False), rows_current, columns_current)
columns_current = columns_current + 1
break
case "╴":
if (columns_current == 0):
p = Position(False, True, False, False, True)
maze_obj.maze_map[rows_current][columns_current] = p
else:
p = Position(False, True, False, False, False)
maze_obj.maze_map[rows_current][columns_current] = p
columns_current = columns_current + 1
break
case "╷":
if (rows_current == int(index_last_line)):
maze_obj.set_maze_map(Position(False, False, True, False, True), rows_current, columns_current)
else:
maze_obj.set_maze_map(Position(False, False, True, False, False), rows_current, columns_current)
columns_current = columns_current + 1
break
case "┐":
if (columns_current == 0) or (rows_current == int(index_last_line)):
maze_obj.set_maze_map(Position(False, False, True, True, True), rows_current, columns_current)
else:
maze_obj.set_maze_map(Position(False, False, True, True, False), rows_current, columns_current)
columns_current = columns_current + 1
break
case "╶":
if (columns_current == int(index_last_char)):
maze_obj.set_maze_map(Position(False, True, False, False, True), rows_current, columns_current)
else:
maze_obj.set_maze_map(Position(False, True, False, False, False), rows_current, columns_current)
columns_current = columns_current + 1
break
case "─":
if (columns_current == int(index_last_char)) or (columns_current == 0):
maze_obj.set_maze_map(Position(False, True, False, True, True), rows_current, columns_current)
else:
maze_obj.set_maze_map(Position(False, True, False, True, False), rows_current, columns_current)
columns_current = columns_current + 1
break
case "┌":
if (columns_current == int(index_last_char)) or (rows_current == int(index_last_line)):
maze_obj.set_maze_map(Position(False, True, True, False, True), rows_current, columns_current)
else:
maze_obj.set_maze_map(Position(False, True, True, False, False), rows_current, columns_current)
columns_current = columns_current + 1
break
case "┬":
if (columns_current == 0) or (columns_current == int(index_last_char)) or (rows_current == int(index_last_line)):
maze_obj.set_maze_map(Position(False, True, True, True, True), rows_current, columns_current)
else:
maze_obj.set_maze_map(Position(False, True, True, True, False), rows_current, columns_current)
columns_current = columns_current + 1
break
case "╵":
if (rows_current == 0):
maze_obj.set_maze_map(Position(True, False, False, False, True), rows_current, columns_current)
else:
maze_obj.set_maze_map(Position(True, False, False, False, False), rows_current, columns_current)
columns_current = columns_current + 1
break
case "┘":
if (rows_current == 0) or (columns_current == 0):
maze_obj.set_maze_map(Position(True, False, False, True, True), rows_current, columns_current)
else:
maze_obj.set_maze_map(Position(True, False, False, True, False), rows_current, columns_current)
columns_current = columns_current + 1
break
case "│":
if (rows_current == 0) or (rows_current == int(index_last_line)):
maze_obj.set_maze_map(Position(True, False, True, False, True), rows_current, columns_current)
else:
maze_obj.set_maze_map(Position(True, False, True, False, False), rows_current, columns_current)
columns_current = columns_current + 1
break
case "┤":
if (columns_current == 0) or (rows_current == 0) or (rows_current == int(index_last_line)):
maze_obj.set_maze_map(Position(True, False, True, True, True), rows_current, columns_current)
else:
maze_obj.set_maze_map(Position(True, False, True, True, False), rows_current, columns_current)
columns_current = columns_current + 1
break
case "└":
if (rows_current == 0) or (columns_current == int(index_last_char)):
maze_obj.set_maze_map(Position(True, True, False, False, True), rows_current, columns_current)
else:
maze_obj.set_maze_map(Position(True, True, False, False, False), rows_current, columns_current)
columns_current = columns_current + 1
break
case "┴":
if (rows_current == 0) or (columns_current == 0) or (columns_current == int(index_last_char)):
maze_obj.set_maze_map(Position(True, True, False, True, True), rows_current, columns_current)
else:
maze_obj.set_maze_map(Position(True, True, False, True, False), rows_current, columns_current)
columns_current = columns_current + 1
break
case "├":
if (rows_current == 0) or (columns_current == int(index_last_char)) or (rows_current == int(index_last_line)):
maze_obj.set_maze_map(Position(True, True, True, False, True), rows_current, columns_current)
else:
maze_obj.set_maze_map(Position(True, True, True, False, False), rows_current, columns_current)
columns_current = columns_current + 1
break
case "┼":
if (rows_current == 0) or (rows_current == int(index_last_line)) or (columns_current == 0) or (columns_current == int(index_last_char)):
maze_obj.set_maze_map(Position(True, True, True, True, True), rows_current, columns_current)
else:
maze_obj.set_maze_map(Position(True, True, True, True, False), rows_current, columns_current)
columns_current = columns_current + 1
break
rows_current = rows_current + 1
columns_current = 0
return maze_obj