From 8f12c5a1af5b01228d67f85a9496ddad2738b3cc Mon Sep 17 00:00:00 2001 From: Danika Ilvija Laganovska Date: Thu, 25 Apr 2024 08:21:36 +0000 Subject: [PATCH] Upload files to "25.02.2024." --- 25.02.2024./151.py | 94 ++++++++++++++++++++++++++++++++++++++++++++++ 25.02.2024./lab.py | 44 ++++++++++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 25.02.2024./151.py create mode 100644 25.02.2024./lab.py diff --git a/25.02.2024./151.py b/25.02.2024./151.py new file mode 100644 index 0000000..3afda8e --- /dev/null +++ b/25.02.2024./151.py @@ -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() diff --git a/25.02.2024./lab.py b/25.02.2024./lab.py new file mode 100644 index 0000000..ee3d5e4 --- /dev/null +++ b/25.02.2024./lab.py @@ -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()