Upload files to "25.02.2024."
							parent
							
								
									f95634f349
								
							
						
					
					
						commit
						8f12c5a1af
					
				| 
						 | 
					@ -0,0 +1,94 @@
 | 
				
			||||||
 | 
					import pygame
 | 
				
			||||||
 | 
					import random
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pygame.init()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					SCREEN_WIDTH = 800
 | 
				
			||||||
 | 
					SCREEN_HEIGHT = 600
 | 
				
			||||||
 | 
					screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					WHITE = (255, 255, 255)
 | 
				
			||||||
 | 
					BLACK = (0, 0, 0)
 | 
				
			||||||
 | 
					RED = (255, 0, 0)
 | 
				
			||||||
 | 
					PLAYER =(0, 255, 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					player_size = 15
 | 
				
			||||||
 | 
					enemy_size = 15
 | 
				
			||||||
 | 
					player_speed = 5
 | 
				
			||||||
 | 
					enemy_speed = 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def generate_maze(width, height):
 | 
				
			||||||
 | 
					    maze = [[random.choice([0, 1]) for _ in range(width)] for _ in range(height)]
 | 
				
			||||||
 | 
					    maze[0][0] = 0
 | 
				
			||||||
 | 
					    maze[height - 1][width - 1] = 0
 | 
				
			||||||
 | 
					    return maze
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def draw_maze(screen, maze):
 | 
				
			||||||
 | 
					    for y, row in enumerate(maze):
 | 
				
			||||||
 | 
					        for x, block in enumerate(row):
 | 
				
			||||||
 | 
					            rect = pygame.Rect(x * player_size, y * player_size, player_size, player_size)
 | 
				
			||||||
 | 
					            if block == 1:
 | 
				
			||||||
 | 
					                pygame.draw.rect(screen, BLACK, rect)
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                pygame.draw.rect(screen, WHITE, rect)
 | 
				
			||||||
 | 
					                pygame.draw.rect(screen, BLACK, rect, 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def is_collision(player_pos, enemy_pos, maze):
 | 
				
			||||||
 | 
					    p_x, p_y = int(player_pos[0] // player_size), int(player_pos[1] // player_size)
 | 
				
			||||||
 | 
					    e_x, e_y = int(enemy_pos[0] // player_size), int(enemy_pos[1] // player_size)
 | 
				
			||||||
 | 
					    if maze[p_y][p_x] or maze[e_y][e_x]:
 | 
				
			||||||
 | 
					        return True
 | 
				
			||||||
 | 
					    return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					game_over = False
 | 
				
			||||||
 | 
					clock = pygame.time.Clock()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maze = generate_maze(SCREEN_WIDTH // player_size, SCREEN_HEIGHT // player_size)
 | 
				
			||||||
 | 
					player_pos = [player_size * 2, player_size * 2]
 | 
				
			||||||
 | 
					enemy_pos = [player_size * 18, player_size * 18]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					while not game_over:
 | 
				
			||||||
 | 
					    for event in pygame.event.get():
 | 
				
			||||||
 | 
					        if event.type == pygame.QUIT:
 | 
				
			||||||
 | 
					            game_over = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    keys = pygame.key.get_pressed()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if keys[pygame.K_LEFT] and not is_collision([player_pos[0] - player_speed, player_pos[1]], enemy_pos, maze):
 | 
				
			||||||
 | 
					        player_pos[0] -= player_speed
 | 
				
			||||||
 | 
					    if keys[pygame.K_RIGHT] and not is_collision([player_pos[0] + player_speed, player_pos[1]], enemy_pos, maze):
 | 
				
			||||||
 | 
					        player_pos[0] += player_speed
 | 
				
			||||||
 | 
					    if keys[pygame.K_UP] and not is_collision([player_pos[0], player_pos[1] - player_speed], enemy_pos, maze):
 | 
				
			||||||
 | 
					        player_pos[1] -= player_speed
 | 
				
			||||||
 | 
					    if keys[pygame.K_DOWN] and not is_collision([player_pos[0], player_pos[1] + player_speed], enemy_pos, maze):
 | 
				
			||||||
 | 
					        player_pos[1] += player_speed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    x_diff = player_pos[0] - enemy_pos[0]
 | 
				
			||||||
 | 
					    y_diff = player_pos[1] - enemy_pos[1]
 | 
				
			||||||
 | 
					    distance = (x_diff ** 2 + y_diff ** 2) ** 0.5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if distance != 0:
 | 
				
			||||||
 | 
					        x_diff /= distance
 | 
				
			||||||
 | 
					        y_diff /= distance
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    enemy_pos[0] += x_diff * enemy_speed
 | 
				
			||||||
 | 
					    enemy_pos[1] += y_diff * enemy_speed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def is_collision(player_pos, enemy_pos, maze):
 | 
				
			||||||
 | 
					        p_x, p_y = int(player_pos[0] // player_size), int(player_pos[1] // player_size)
 | 
				
			||||||
 | 
					        e_x, e_y = int(enemy_pos[0] // player_size), int(enemy_pos[1] // player_size)
 | 
				
			||||||
 | 
					        if maze[p_y][p_x] or maze[e_y][e_x]:
 | 
				
			||||||
 | 
					            return True
 | 
				
			||||||
 | 
					        return False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    screen.fill(WHITE)
 | 
				
			||||||
 | 
					    draw_maze(screen, maze)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pygame.draw.rect(screen, PLAYER, (player_pos[0], player_pos[1], player_size, player_size))
 | 
				
			||||||
 | 
					    pygame.draw.rect(screen, RED, (enemy_pos[0], enemy_pos[1], enemy_size, enemy_size))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pygame.display.update()
 | 
				
			||||||
 | 
					    clock.tick(30)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pygame.quit()
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,44 @@
 | 
				
			||||||
 | 
					import pygame
 | 
				
			||||||
 | 
					import sys
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pygame.init()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					width, height = 1900, 1000
 | 
				
			||||||
 | 
					screen = pygame.display.set_mode((width, height))
 | 
				
			||||||
 | 
					pygame.display.set_caption('Labirints')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BLACK = (0, 0, 0)
 | 
				
			||||||
 | 
					BLUE = (0, 0, 255)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maze = [
 | 
				
			||||||
 | 
					    "############################################################",
 | 
				
			||||||
 | 
					    "#.....###########.....###########........#####.............#",
 | 
				
			||||||
 | 
					    "#.###..#####.......##############.........##......###......#",
 | 
				
			||||||
 | 
					    "#........####..............................##.#####.......##",
 | 
				
			||||||
 | 
					    "######.####.##.############################...##############",
 | 
				
			||||||
 | 
					    "#......#...........###..........#######................#...#",
 | 
				
			||||||
 | 
					    "#.##########.........................................##.##.#",
 | 
				
			||||||
 | 
					    "#.......########################################.....#.....#",
 | 
				
			||||||
 | 
					    "####..........##..........###..................#########..##",
 | 
				
			||||||
 | 
					    "#....###........................................###......###",
 | 
				
			||||||
 | 
					    "############################################################"
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def draw_maze(maze):
 | 
				
			||||||
 | 
					    for y, row in enumerate(maze):
 | 
				
			||||||
 | 
					        for x, char in enumerate(row):
 | 
				
			||||||
 | 
					            if char == '#':
 | 
				
			||||||
 | 
					                pygame.draw.rect(screen, BLUE, (x*32, y*32, 32, 32))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					running = True
 | 
				
			||||||
 | 
					while running:
 | 
				
			||||||
 | 
					    for event in pygame.event.get():
 | 
				
			||||||
 | 
					        if event.type == pygame.QUIT:
 | 
				
			||||||
 | 
					            running = False
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    screen.fill(BLACK)
 | 
				
			||||||
 | 
					    draw_maze(maze)
 | 
				
			||||||
 | 
					    pygame.display.flip()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pygame.quit()
 | 
				
			||||||
 | 
					sys.exit()
 | 
				
			||||||
		Loading…
	
		Reference in New Issue