From 8734719d9d0d7b1f04da14e62270d6b64e2956ab Mon Sep 17 00:00:00 2001 From: omagdy7 Date: Tue, 21 Mar 2023 00:40:19 +0200 Subject: Trying to draw the pacman map using the 2dArray --- src/map.py | 133 +++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 71 insertions(+), 62 deletions(-) (limited to 'src/map.py') diff --git a/src/map.py b/src/map.py index ee87470..0968a7b 100644 --- a/src/map.py +++ b/src/map.py @@ -17,25 +17,78 @@ LD = L | D RU = R | U RD = R | D +M = 11 + class Map(): """ 0 -> free - 1 -> vertical line - 2 -> horizontal line - 3 -> right, down - + 1 -> U + 4 -> D + 8 -> L + 2 -> R + 3 -> RU + 6 -> RD + 9 -> LU + 5 -> LD """ def __init__(self): self.map = [ - [LU, U, U, U, U, U, U, RU], - [L, 0, 0, 0, 0, 0, 0, R], - [L, 0, LU, 0, RU, 0, 0,R], - [L, 0, 0, 0, 0, 0, 0, R], - [L, 0, 0, 0, 0, 0, 0, R], - [LD, D, D, D, D, D, D, RD], + [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_length = Settings.settings.width // len(self.map) + 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 @@ -46,19 +99,19 @@ class Map(): def draw_wall(self, screen, flag , pos): if flag & U: pos1 = pos - pos2 = (pos[0] + self.line_length, pos[1]) + 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_length) - pos2 = (pos[0] + self.line_length, pos[1] + self.line_length) + 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_length, pos[1]) - pos2 = (pos[0] + self.line_length, pos[1] + self.line_length) + 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_length) + pos2 = (pos[0], pos[1] + self.line_horizontal) pygame.draw.line(screen, self.line_color, pos1, pos2, self.line_stroke) @@ -73,49 +126,5 @@ class Map(): # line_stroke = 6 for i in range(0, rows): for j in range(cols): - pos = (j * self.line_length, i * self.line_length) + pos = (j * self.line_horizontal, i * self.line_vertical) self.draw_wall(screen, self.map[i][j], pos) - # if self.map[i][j] == 1: - # if i == rows - 1: - # p1 = (j * ofs, (i + 1) * ofs) - # p2 = ((j + 1) * ofs, (i + 1) * ofs) - # else: - # p1 = (j * ofs, i * ofs) - # p2 = ((j + 1) * ofs, i * ofs) - # pygame.draw.line(screen, line_color, p1, p2, line_stroke) - # if self.map[i][j] == 2: - # if j == cols - 1: - # p1 = ((j + 1) * ofs, i * ofs) - # p2 = ((j + 1) * ofs, (i + 1) * ofs) - # else: - # p1 = (j * ofs, i * ofs) - # p2 = (j * ofs, (i + 1) * ofs) - # pygame.draw.line(screen, line_color, p1, p2, line_stroke) - # if self.map[i][j] == 3: - # p1_vertical = (j * ofs, i * ofs) - # p2_vertical = ((j + 1) * ofs, i * ofs) - # p1_horizontal = (j * ofs, i * ofs) - # p2_horizontal = (j * ofs, (i + 1) * ofs) - # pygame.draw.line(screen, line_color, p1_horizontal, p2_horizontal, line_stroke) - # pygame.draw.line(screen, line_color, p1_vertical, p2_vertical, line_stroke) - # if self.map[i][j] == 4: - # p1_vertical = (j * ofs, (i + 1) * ofs) - # p2_vertical = ((j + 1) * ofs, (i + 1) * ofs) - # p1_horizontal = (j * ofs, i * ofs) - # p2_horizontal = (j * ofs, (i + 1) * ofs) - # pygame.draw.line(screen, line_color, p1_horizontal, p2_horizontal, line_stroke) - # pygame.draw.line(screen, line_color, p1_vertical, p2_vertical, line_stroke) - # if self.map[i][j] == 5: - # p1_vertical = (j * ofs, (i + 1) * ofs) - # p2_vertical = ((j + 1) * ofs, (i + 1) * ofs) - # p1_horizontal = ((j + 1) * ofs, i * ofs) - # p2_horizontal = ((j + 1) * ofs, (i + 1) * ofs) - # pygame.draw.line(screen, line_color, p1_horizontal, p2_horizontal, line_stroke) - # pygame.draw.line(screen, line_color, p1_vertical, p2_vertical, line_stroke) - # if self.map[i][j] == 6: - # p1_vertical = (j * ofs, i * ofs) - # p2_vertical = ((j + 1) * ofs, i * ofs) - # p1_horizontal = ((j + 1) * ofs, i * ofs) - # p2_horizontal = ((j + 1) * ofs, (i + 1) * ofs) - # pygame.draw.line(screen, line_color, p1_horizontal, p2_horizontal, line_stroke) - # pygame.draw.line(screen, line_color, p1_vertical, p2_vertical, line_stroke) -- cgit v1.2.3