From b7bd8b1b7bc5bf70172b21fa1790c137afbda2a6 Mon Sep 17 00:00:00 2001 From: Gary Gan Date: Fri, 27 Jun 2025 20:53:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- maze.csv | 30 +++++++++++++++--------------- maze.py | 24 ++++++++++++++++-------- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/maze.csv b/maze.csv index 59c8e46..a65d585 100644 --- a/maze.csv +++ b/maze.csv @@ -1,16 +1,16 @@ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 -1,0,0,1,0,e,t7,1,0,0,0,0,0,g19,0,1 -1,0,1,1,0,1,1,1,1,1,1,1,1,1,0,1 -1,0,l25,0,t5,0,0,1,0,0,0,0,t9,0,g27,1 -1,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1 -1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,1 -1,0,1,0,1,0,0,1,1,1,1,0,0,0,0,1 -1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1 -1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1 -1,l25,g10,0,1,0,0,0,0,1,0,0,1,0,b73,1 -1,1,1,1,1,t9,1,1,g20,1,0,0,1,0,g12,1 -1,0,1,0,1,0,0,1,0,1,0,0,1,0,0,1 -1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,1 -1,1,1,0,0,0,0,1,t7,1,0,1,1,0,0,1 -1,g12,0,0,1,0,s,1,0,0,t13,0,1,l17,0,1 -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 \ No newline at end of file +1,0,0,0,0,1,0,1,0,1,0,0,0,0,0,1 +1,0,0,0,0,0,0,1,0,1,1,1,1,1,0,1 +1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1 +1,0,t19,b68,s,0,0,1,1,1,0,1,1,1,1,1 +1,0,0,0,0,1,0,1,0,0,0,0,0,0,t7,1 +1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1 +1,0,1,0,0,0,0,1,0,0,0,0,t16,0,0,1 +1,t16,1,0,0,0,0,1,0,1,1,0,1,1,1,1 +1,0,1,1,1,1,t11,1,0,1,0,g20,1,0,0,1 +1,0,1,0,1,0,l12,0,g20,1,l29,0,0,g25,0,1 +1,0,1,t19,1,1,0,1,g30,1,1,1,1,1,1,1 +1,e,1,0,1,0,0,1,0,1,0,0,1,0,0,1 +1,0,1,0,1,0,0,1,0,1,1,0,1,1,0,1 +1,0,0,0,0,0,g27,1,0,0,0,0,t10,0,0,1 +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 diff --git a/maze.py b/maze.py index 5ad6363..cc35f3a 100644 --- a/maze.py +++ b/maze.py @@ -1,6 +1,6 @@ import pygame from maze_generator import MazeGenerator -from tanxin import * +from SourceCollector import SourceCollector import time class Maze: @@ -18,9 +18,14 @@ class Maze: def generate(self): seed = int(time.time() * 1000) % (2**32) self.generater.generate(seed=seed) - # player = GreedyPlayer(generater.maze) + + obj = SourceCollector(filename=None, maze=self.generater.maze) + sn = obj.build_a_tree() + obj.dfs(sn) + # player.find_path() - self.grid = self.generater.maze + self.grid = obj.gen_maze(sn.dp_path) + print(self.grid) def export_to_csv(self, filename): self.generater.export_to_csv(filename=filename) @@ -37,13 +42,16 @@ class Maze: for x in range(self.size): if self.grid[y][x] == '1': screen.blit(wall_texture, (x * tile_size, y * tile_size)) + continue if self.grid[y][x].startswith('g'): screen.blit(coin_texture, (x * tile_size, y * tile_size)) + continue if self.grid[y][x].startswith('t'): screen.blit(trap_texture, (x * tile_size, y * tile_size)) - if self.grid[y][x].startswith('|') or self.grid[y][x].startswith('-'): + continue + if self.grid[y][x].startswith('p') or self.grid[y][x].startswith('-'): font = pygame.font.SysFont(None, tile_size // 2) - num = 12 + num = int(self.grid[y][x][1:]) center = (x * tile_size + tile_size // 2, y * tile_size + tile_size // 2) radius = tile_size // 3 pygame.draw.circle(screen, (255, 215, 0), center, radius) @@ -51,7 +59,7 @@ class Maze: text = font.render(str(num), True, (0, 0, 0)) text_rect = text.get_rect(center=center) screen.blit(text, text_rect) - + continue if self.grid[y][x].startswith('s'): font = pygame.font.SysFont(None, tile_size // 2) text = "s" @@ -62,7 +70,7 @@ class Maze: text = font.render(text, True, (0, 0, 0)) text_rect = text.get_rect(center=center) screen.blit(text, text_rect) - + continue if self.grid[y][x].startswith('e'): font = pygame.font.SysFont(None, tile_size // 2) text = "e" @@ -73,7 +81,7 @@ class Maze: text = font.render(text, True, (0, 0, 0)) text_rect = text.get_rect(center=center) screen.blit(text, text_rect) - + continue pygame.draw.line(screen, (0, 0, 0), (self.maze_size, 0), (self.maze_size, self.maze_size), 5)