From 5289c48fe2b80aa2ea59f4fb755133a5656bc702 Mon Sep 17 00:00:00 2001 From: Michal Zmudzinski Date: Sun, 13 Jun 2021 15:14:55 +0200 Subject: [PATCH] Game --- bfs.py | 0 colors.py | 5 ++++ house.py | 23 ++++++++++++++ houses.txt | 16 ++++++++++ img/house.png | Bin 0 -> 18033 bytes img/trash.png | Bin 0 -> 3494 bytes img/truck.png | Bin 0 -> 3486 bytes main.py | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++ text.py | 16 ++++++++++ trash.py | 16 ++++++++++ truck.py | 32 ++++++++++++++++++++ 11 files changed, 189 insertions(+) create mode 100644 bfs.py create mode 100644 colors.py create mode 100644 house.py create mode 100644 houses.txt create mode 100644 img/house.png create mode 100644 img/trash.png create mode 100644 img/truck.png create mode 100644 main.py create mode 100644 text.py create mode 100644 trash.py create mode 100644 truck.py diff --git a/bfs.py b/bfs.py new file mode 100644 index 0000000..e69de29 diff --git a/colors.py b/colors.py new file mode 100644 index 0000000..1b85afc --- /dev/null +++ b/colors.py @@ -0,0 +1,5 @@ +gray = (80, 80, 80) +white = (255, 255, 255) +blue = (0, 0, 255) +green = (0, 255, 0) +red = (255, 0, 0) diff --git a/house.py b/house.py new file mode 100644 index 0000000..68374ee --- /dev/null +++ b/house.py @@ -0,0 +1,23 @@ +class House: + def __init__(self, position, grid_size): + self.pos = position + self.size = grid_size + + +def is_house(position, houses): + for house in houses: + if house.pos == position: + return True + return False + + +def create_houses(grid_size): + houses = [] + with open(file='houses.txt', mode='r', encoding='utf-8') as file: + for l_index, line in enumerate(file): + for h_index, if_house in enumerate(line): + if if_house == '1': + house = House( + [h_index*grid_size, l_index*grid_size], grid_size) + houses.append(house) + return houses diff --git a/houses.txt b/houses.txt new file mode 100644 index 0000000..7eb87fa --- /dev/null +++ b/houses.txt @@ -0,0 +1,16 @@ +11111111111111111111111111111111 +10000000000000000000000000000001 +10000000000000000000000000000001 +10011111110001000010001111111001 +10000000000001000010000000000001 +10000000000001000010000000000001 +11111111111111000011111111111111 +10000000000000000000000000000001 +10000000000000000000000000000001 +11111111111111000011111111111111 +10000000000001000010000000000001 +10000000000001000010000000000001 +10011111111001000010011111111001 +10000000000000000000000000000001 +10000000000000000000000000000001 +11111111111111111111111111111111 \ No newline at end of file diff --git a/img/house.png b/img/house.png new file mode 100644 index 0000000000000000000000000000000000000000..cf9c5be4a857cdf915b856730db6eb9b5a92d7bc GIT binary patch literal 18033 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 Eg0lh{yZ`_I literal 0 HcmV?d00001 diff --git a/img/trash.png b/img/trash.png new file mode 100644 index 0000000000000000000000000000000000000000..5677e496c85b7474f1dcfc3c7811294614d4f44e GIT binary patch literal 3494 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 M07*qoM6N<$g7N#ATL1t6 literal 0 HcmV?d00001 diff --git a/main.py b/main.py new file mode 100644 index 0000000..23c1690 --- /dev/null +++ b/main.py @@ -0,0 +1,81 @@ +import pygame + +from text import msg_display +from colors import gray +from house import create_houses +from truck import Truck +from trash import Trash + +from bfs import bfs + + +pygame.init() + + +def update_images(gameDisplay, truck, trash, houses, score): + gameDisplay.fill(gray) + for house in houses: + gameDisplay.blit(pygame.image.load('./img/house.png'), house.pos) + gameDisplay.blit(pygame.image.load('./img/trash.png'), trash.pos) + gameDisplay.blit(truck.image, truck.pos) + msg_display(gameDisplay, f'Trash collected: {score}') + pygame.display.update() + + +def game_loop(): + game_w = 1280 # 32 + game_h = 640 # 16 + grid_size = 40 + + gameDisplay = pygame.display.set_mode((game_w, game_h)) + pygame.display.set_caption('Garbage truck') + clock = pygame.time.Clock() + + gameExit = False + + score = 0 + truck = Truck(game_w, game_h, grid_size) + trash = Trash(game_w, game_h, grid_size) + houses = create_houses(grid_size) + + trash.new_pos(truck.pos, houses) + + while not gameExit: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit() + quit() + if event.type == pygame.KEYDOWN: + if event.key == pygame.K_ESCAPE: + pygame.quit() + quit() + if (event.key == pygame.K_b): + bfs() + break + if (event.key == pygame.K_w or event.key == pygame.K_UP): + if truck.test_crash(houses): + break + truck.move() + print('↑') + if truck.pos == trash.pos: + score += 1 + trash.new_pos(truck.pos, houses) + break + elif (event.key == pygame.K_a or event.key == pygame.K_LEFT): + print('←') + truck.rotate(-1) + truck.rotate_image(90) + break + elif (event.key == pygame.K_d or event.key == pygame.K_RIGHT): + print('→') + truck.rotate(1) + truck.rotate_image(-90) + break + + update_images(gameDisplay, truck, trash, houses, score) + clock.tick(60) + + +if __name__ == '__main__': + game_loop() +pygame.quit() diff --git a/text.py b/text.py new file mode 100644 index 0000000..2ad8549 --- /dev/null +++ b/text.py @@ -0,0 +1,16 @@ +from colors import white +import pygame + + +def text_objects(text, font): + textSurface = font.render(text, True, white) + return textSurface, textSurface.get_rect() + + +def msg_display(gameDisplay, msg): + msg_size = 35 + pos = (1100, 16) + largeText = pygame.font.Font('freesansbold.ttf', msg_size) + TestSurf, TextRect = text_objects(msg, largeText) + TextRect.center = (pos) + gameDisplay.blit(TestSurf, TextRect) diff --git a/trash.py b/trash.py new file mode 100644 index 0000000..9ac4c9a --- /dev/null +++ b/trash.py @@ -0,0 +1,16 @@ +import random +from house import is_house + + +class Trash: + def __init__(self, grid_w, grid_h, grid_size): + self.grid_w = grid_w + self.grid_h = grid_h + self.size = grid_size + + def new_pos(self, truck_pos, houses): + while True: + self.pos = [random.randrange(0, self.grid_w, self.size), + random.randrange(0, self.grid_h, self.size)] + if self.pos != truck_pos and not is_house(self.pos, houses): + break diff --git a/truck.py b/truck.py new file mode 100644 index 0000000..cd227f9 --- /dev/null +++ b/truck.py @@ -0,0 +1,32 @@ +import pygame +from house import is_house + + +class Truck: + def __init__(self, grid_w, grid_h, grid_size): + self.grid_w = grid_w + self.grid_h = grid_h + self.size = grid_size + self.pos = [self.grid_w // 2, self.grid_h // 2] + self.direction = [1, 0] + self.dir_control = 0 + self.image = pygame.image.load('./img/truck.png') + + def move(self): + self.pos[0] += self.direction[0] * self.size + self.pos[1] += self.direction[1] * self.size + + def test_crash(self, houses): + new_pos = [] + new_pos.append(self.pos[0] + (self.direction[0]*self.size)) + new_pos.append(self.pos[1] + (self.direction[1]*self.size)) + return is_house(new_pos, houses) + + def rotate(self, direction): + all_dir = [[1, 0], [0, 1], [-1, 0], [0, -1]] + self.dir_control = (direction + self.dir_control) % 4 + self.direction = all_dir[self.dir_control] + + def rotate_image(self, angle): + rotated_image = pygame.transform.rotate(self.image, angle) + self.image = rotated_image