import pygame as pg from Vec import Vec class Maze: def __init__(self, grid_cell_size): self.grid_cell_size = grid_cell_size self.maze = [] # jeweilige .pac Datei wird ausgelesen def read_file(self, filename): try: with open(filename, "r") as file: data = file.read() lines = data.split("\n") for line in lines: inner_list = [] self.maze.append(inner_list) for f in line: inner_list.append(int(f)) # rotate temp = [] for i in range(len(self.maze)): temp.append([]) for j in range(len(self.maze)): temp[i].append( self.maze[j][i]) # füllt das 2d Array an richtiger Stelle mit den Werten aus der .pac Datei self.maze = temp except FileNotFoundError: print("File Not Found") # Labyrinth wird für den Spieler gezeichnet def draw(self, screen, color1, color2): for x, l in enumerate(self.maze): for y, f in enumerate(l): # wenn die Zelle begehbar ist, bekommt sie die Farbe Weiß, ansonsten grau. color = color1 if f == 1 else color2 if f > 0: # Zelle wird mit ihrer Farbe gezeichnet pg.draw.rect(screen, color, (x * self.grid_cell_size, y * self.grid_cell_size, self.grid_cell_size, self.grid_cell_size), border_bottom_left_radius=10 if self.is_free(Vec(x - 1, y)) and self.is_free( Vec(x, y + 1)) else 0, border_bottom_right_radius=10 if self.is_free(Vec(x + 1, y)) and self.is_free( Vec(x, y + 1)) else 0, border_top_left_radius=10 if self.is_free(Vec(x - 1, y)) and self.is_free( Vec(x, y - 1)) else 0, border_top_right_radius=10 if self.is_free(Vec(x + 1, y)) and self.is_free( Vec(x, y - 1)) else 0, ) def is_free(self, v): if len(self.maze) > v.x >= 0 and len(self.maze[v.x]) > v.y >= 0: return self.maze[v.x][v.y] == 0 return True