# the map is 2d array of with size (160, 120) # 0 -> free # 1 -> vertical line # 2 -> import pygame import settings as Settings U = 1 D = 4 L = 8 R = 2 LU = L | U LD = L | D RU = R | U RD = R | D M = 11 class Map(): """ 0 -> free 1 -> U 4 -> D 8 -> L 2 -> R 3 -> RU 6 -> RD 9 -> LU 5 -> LD """ def __init__(self): self.map = [ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 9, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, 3, 0, 9, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, U, 3, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 9, U, U, 3, 0, 0, 0, 0, 9, U, U, U, U, 3, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, 9, U, U, U, U, 3, 0, 0, 0, 0, 9, U, U, 3, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, L, 0, 0, 0, 0, 0, 0, 0, L, 0, 0, 0, 0, R, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, L, 0, 0, 0, 0, R, 0, 0, 0, 0, L, 0, 0, R, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 5, D, D, 6, 0, 0, 0, 0, 5, D, D, D, D, 6, 0, 0, 0, 0, R, D, L, 0, 0, 0, 0, 5, D, D, D, D, 6, 0, 0, 0, 0, 5, D, D, 6, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 9, U, U, 3, 0, 0, R, U, L, 0, 0, 0, 0, 9, U, U, U, U, U, U, U, U, U, U, U, 3, 0, 0, 0, 0, R, 9, 0, 0, 0, 9, U, U, 3, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 5, D, D, 6, 0, 0, R, 0, L, 0, 0, 0, 0, U, U, U, U, U, 3, 0, 9, U, U, U, U, U, 0, 0, 0, 0, R, L, 0, 0, 0, 5, D, D, 6, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, D, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, D, D, D, D, D, D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, D, D, D, D, D, 3, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, 3, 0, 0, 0, 0, R, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, L, 0, 0, 0, 0, 0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, U, U, U, U, U, U, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, U, U, U, U, U, 9, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, U, U, U, U, U, U, 0, 0, 0, 0, R, D, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 3, 0, 0, 0, 0, 0, U, U, U, U, U, U, U, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, D, D, D, D, D, D, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, D, D, D, D, D, D, D, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, L, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, M, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, R, 0], [0, 5, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, D, 6, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], ] self.line_vertical = Settings.settings.width // len(self.map[0]) self.line_horizontal = Settings.settings.height // len(self.map) self.line_color = (0, 0, 150) self.line_stroke = 6 def consturct_map(self): pass def draw_wall(self, screen, flag , pos): if flag & U: pos1 = pos pos2 = (pos[0] + self.line_vertical, pos[1]) pygame.draw.line(screen, self.line_color, pos1, pos2, self.line_stroke) if flag & D: pos1 = (pos[0], pos[1] + self.line_horizontal) pos2 = (pos[0] + self.line_vertical, pos[1] + self.line_horizontal) pygame.draw.line(screen, self.line_color, pos1, pos2, self.line_stroke) if flag & R: pos1 = (pos[0] + self.line_vertical, pos[1]) pos2 = (pos[0] + self.line_vertical, pos[1] + self.line_horizontal) pygame.draw.line(screen, self.line_color, pos1, pos2, self.line_stroke) if flag & L: pos1 = pos pos2 = (pos[0], pos[1] + self.line_horizontal) pygame.draw.line(screen, self.line_color, pos1, pos2, self.line_stroke) def draw_map(self, screen): rows = len(self.map) cols = len(self.map[0]) # ofs = Settings.settings.width // cols # line_color = (0, 0, 150) # line_stroke = 6 for i in range(0, rows): for j in range(cols): pos = (j * self.line_horizontal, i * self.line_vertical) self.draw_wall(screen, self.map[i][j], pos)