From f79a2d91d99362c85d776c24171ece50dc7f4d67 Mon Sep 17 00:00:00 2001 From: Michal Zmudzinski Date: Tue, 27 Apr 2021 19:22:49 +0200 Subject: [PATCH] prawie bfs --- main/src/__pycache__/bfs.cpython-38.pyc | Bin 0 -> 2272 bytes main/src/__pycache__/bfs.cpython-39.pyc | Bin 0 -> 2260 bytes main/src/__pycache__/settings.cpython-38.pyc | Bin 313 -> 312 bytes main/src/__pycache__/settings.cpython-39.pyc | Bin 0 -> 308 bytes main/src/__pycache__/trash.cpython-38.pyc | Bin 1474 -> 1488 bytes main/src/__pycache__/trash.cpython-39.pyc | Bin 0 -> 1484 bytes main/src/__pycache__/truck1.cpython-38.pyc | Bin 3356 -> 4457 bytes main/src/__pycache__/truck1.cpython-39.pyc | Bin 0 -> 4460 bytes main/src/__pycache__/walls.cpython-38.pyc | Bin 1203 -> 1213 bytes main/src/__pycache__/walls.cpython-39.pyc | Bin 0 -> 1209 bytes main/src/bfs.py | 75 ++++++++++++++ main/src/img/bg.png | Bin 0 -> 1733 bytes main/src/img/truck — kopia.png | Bin 0 -> 3486 bytes main/src/img/truck.png | Bin 3486 -> 3463 bytes main/src/main.py | 10 +- main/src/map.txt | 28 +++--- main/src/trash.py | 17 ++-- main/src/truck1.py | 100 ++++++++++++------- main/src/walls.py | 8 +- 19 files changed, 174 insertions(+), 64 deletions(-) create mode 100644 main/src/__pycache__/bfs.cpython-38.pyc create mode 100644 main/src/__pycache__/bfs.cpython-39.pyc create mode 100644 main/src/__pycache__/settings.cpython-39.pyc create mode 100644 main/src/__pycache__/trash.cpython-39.pyc create mode 100644 main/src/__pycache__/truck1.cpython-39.pyc create mode 100644 main/src/__pycache__/walls.cpython-39.pyc create mode 100644 main/src/bfs.py create mode 100644 main/src/img/bg.png create mode 100644 main/src/img/truck — kopia.png diff --git a/main/src/__pycache__/bfs.cpython-38.pyc b/main/src/__pycache__/bfs.cpython-38.pyc new file mode 100644 index 0000000000000000000000000000000000000000..94d45fcc5137359dffea667045dcfd08f74dc571 GIT binary patch literal 2272 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 delta 88 zcmdnNw3CT9l$V!_0SHe*7r?J&P>fx@XJh1sme^vDbCK+ qcS$YIF3B&@FUqgVOI0W?DNV^t)GyA|&rQtC(=RScj+xBIs09Gt4;_sF diff --git a/main/src/__pycache__/settings.cpython-39.pyc b/main/src/__pycache__/settings.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..753cedf0cb2f83374830206d847db43c68819540 GIT binary patch literal 308 zcmYk0y-ve06osAtsL*#{BnuCK5CRe_u^L*GxI$Q#LKItILYl}9Nac-qo6cUDx-m21 zER=I~zpFFcqf^i4Ghnn0-yc8B{hG{wS;kzMRVM}v5Wp;AF`L-TAr5ni%U$9zkNC_l zK@%$Ie9*y78n5zIL5^^-ju%yV2VwFFWH<#+_=%fyx>j5&dMlb|nsC*Q{XmtV uC8`G5zwmaf)L%2&)nY@HY^dVnC^k>(Y}o4XqU+h)E5Doyt78M#I?OL7Jxf*q literal 0 HcmV?d00001 diff --git a/main/src/__pycache__/trash.cpython-38.pyc b/main/src/__pycache__/trash.cpython-38.pyc index 4292d0492ea18dcb4aaaea11ad6343770d17ea26..69ed6e22deea4f994989a7856205348c5542536b 100644 GIT binary patch delta 295 zcmX@aeSw=dl$V!_0SGKL%Mw&3^2#!rOw^V%%4LaSVPtS;NMTN4X<n;?$yI zec#OF41Jf>;_Q_q+C#LPVX;-X~zlA^@o z484NNB3__z?2`{L&18(49L21`FAn4vvjGVPMm|Qq|C4)}pD;>KE@BC0QwE9^$xlAb zBE_gQ`5B9s6<9z8Br1tYNP)P_Kmue=F$a*~VB`?sVBuf~i)wOA&SI5i0ehs4)ryIS F82~r2LJI%@ delta 308 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 C`nLc8 literal 0 HcmV?d00001 diff --git a/main/src/__pycache__/walls.cpython-38.pyc b/main/src/__pycache__/walls.cpython-38.pyc index 06678ccd822ba8c8535597cb2e54cb751de5fa5b..e926528e851a1df853550080550e9ad21f01112d 100644 GIT binary patch delta 443 zcmY*VyH3L}6t(kkQ)pBnT0w;h15+9B4^)Vu6{-X*p%Ti{MzPhVP1?u~RGk>$2T;F) z5q0J(V9Fox3ryS_qyiq!^*KI1_Py)!TiNZq?iPVn9p4Yxv)jBq2O@}|G4Ux>BQ_G# zHz~Ow!W7mM5tgJAYhpi|J_F4b3^caUN`iW%RrlV$Oo8D#D>-pW+g-2~=fV}#k zC&4akR1JXvyb!eq<*UP!S;j-&*HUSI6@_Eok$RfVQ?4WK^#-Y$PvkTk=p>S16sT#y zlOURLtwO#C;#i-iOXWfoTMZ4rfuTk659}i~0qpg=!RYZJatoo3@ary&7*mIsqt$`6 z^U(P3D7=NO2?yAS#@-yNkhh$irOQ!}NM!@f9WApgnvHZZ0JRO8svzKJiW`3(-$dt5 VJDH2SSe{V=pV2rehgQs5^&5h=SN;G1 delta 398 zcmdnXxtWtUl$V!_0SHXeOA^E<^2++!068fPDU3M`QH(&EDTgV9!JQ$6IfbQ#A%!KC zF^f5irI|U36)47y1rQ@9FJzHm;b0Qs0|2U9PR;-T diff --git a/main/src/__pycache__/walls.cpython-39.pyc b/main/src/__pycache__/walls.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d9289955b4b704dbc82cd53bfb190914f5cf56c6 GIT binary patch literal 1209 zcmdT@&2G~`5Z<-dj%nhwK>0hsJ(o(oRtQys3RQw$0z!%`EylZX?b?ai-2kb~i9Sej z%q#7cQ(u7#%xu&Uap1s>k>=Z(S^M++IgR5T03zru`Hs%EK#UxNY6L+9t;mSN z=~Z6sk9wb7f?S0}^M(Mg7p zZSlZ42G#oj(tT~@2`aoRGV+BFEX=ZZX;o#I+l>TZp#L0HUjZ0W(gnP?q+eM}OCOYt zy_WC*Zo;y&h+5K;GFW<)v=rjE3|Z`$uIY}wCHkPi&|AV&Ja%@!Wx{jMBhPN@1Man+ z>Fy&_jFFAKCkSNfpI!EgI#150Gc6Afnn^zJ6ou>@tZrMc$!$>7X)Z0Rrm3)9D2(ey z6-H_sdEv~hohL7(zA)1!(M2*m<&Bz_ z^1^Uk7cwhSb&)1@T1*nHvc%Ns05 zENTM9Kv6rK*Hba8(C%^mah6u=8^`Rj+=7Sj4dnyiCTQ$HM4kUn3l?BrhyTZh#hVRV zFWB`@5cLH6fq#U$hk!F(gKHGd2IGI5P2ct4_i)ss4aXmBkKqCr=%(%H4kC*E{eG{~C?!6w#i)zxxZG6$Ik| literal 0 HcmV?d00001 diff --git a/main/src/bfs.py b/main/src/bfs.py new file mode 100644 index 0000000..3a17379 --- /dev/null +++ b/main/src/bfs.py @@ -0,0 +1,75 @@ +import pygame as pg +import sys +from os import path +from collections import deque +from time import sleep + + +def bfs(): + class Map: + def __init__(self, x, y, state): + self.x = x + self.y = y + self.pos = [self.x, self.y] + self.nodes = [] + self.prev = None + self.wall = False if state not in ('b', 'w') else True + self.visited = False + + def add_nodes(self, arr): + if self.x < len(map_raw)-1: + self.nodes.append(arr[self.x+1][self.y]) + if self.x > 0: + self.nodes.append(arr[self.x-1][self.y]) + if self.y < len(map_raw[0])-1: + self.nodes.append(arr[self.x][self.y+1]) + if self.y > 0: + self.nodes.append(arr[self.x][self.y-1]) + + def __str__(self): + return f'{self.x}, {self.y}' + + game_path = path.join(path.dirname(__file__), 'map.txt') + + map_raw = [line.strip() for line in open(game_path, 'rt')] + map_arr = [] + queue = deque() + bfs_path = [] + + truck = [0, 0] + trash = [0, 0] + + for x in range(len(map_raw)): + temp = [] + for y in range(len(map_raw[0])): + temp.append(Map(x, y, map_raw[x][y])) + if map_raw[x][y] == 'P': + truck = temp[-1] + if map_raw[x][y] == 't': + trash = temp[-1] + map_arr.append(temp) + + for x in range(len(map_raw)): + for y in range(len(map_raw[0])): + map_arr[x][y].add_nodes(map_arr) + + queue.append(truck) + + while True: + if len(queue) > 0: + cur_node = queue.popleft() + cur_node.visited = True + if cur_node == trash: + temp = cur_node + while temp.prev: + bfs_path.append(temp.prev) + temp = temp.prev + break + else: + for node in cur_node.nodes: + if not node.visited and not node.wall: + node.visited = True + node.prev = cur_node + queue.append(node) + + return [node.pos for node in bfs_path[:-1]] diff --git a/main/src/img/bg.png b/main/src/img/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..c5f9eb826a1c87107d52c9590097682af095f21d GIT binary patch literal 1733 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 M07*qoM6N<$g7N#ATL1t6 literal 0 HcmV?d00001 diff --git a/main/src/img/truck.png b/main/src/img/truck.png index 7860105ed4270c76b6ea0466d0492178bd6df388..317ffa88508e6e31d19a7fb2de933806078e05b4 100644 GIT binary patch delta 3444 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 KMNUMnLSTXu?xOhs diff --git a/main/src/main.py b/main/src/main.py index 8497f93..d9b6876 100644 --- a/main/src/main.py +++ b/main/src/main.py @@ -6,6 +6,7 @@ from truck1 import * from walls import * from settings import * + class Game: def __init__(self): pg.init() @@ -20,7 +21,8 @@ class Game: self.map_data = [] with open(path.join(game_folder, 'map.txt'), 'rt') as f: for line in f: - self.map_data.append(line) + self.map_data.append(line.strip()) + print(line.strip()) def new(self): self.all_sprites = pg.sprite.Group() @@ -32,7 +34,7 @@ class Game: if tile == 'b': Wall(self, col, row) if tile == 'w': - Wall1(self, col,row) + Wall1(self, col, row) if tile == 'P': garbageTruck(self, col, row) if tile == 't': @@ -55,7 +57,7 @@ class Game: def draw(self): bg = pg.image.load("img\\bg.png") - self.screen.blit(bg,(0,0)) + self.screen.blit(bg, (0, 0)) self.screen.fill(BGCOLOR) self.all_sprites.draw(self.screen) pg.display.flip() @@ -75,10 +77,10 @@ class Game: def show_go_screen(self): pass + g = Game() g.show_start_screen() while True: g.new() g.run() g.show_go_screen() - diff --git a/main/src/map.txt b/main/src/map.txt index a3b6600..379e3fe 100644 --- a/main/src/map.txt +++ b/main/src/map.txt @@ -1,18 +1,18 @@ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb bbbbb bbb bbb bb bb b bb -b t w b -b w w b -b wwwwww wwwww bbb -bbb w w w w b -b w t w b -b wwwww wwwwwww t bb -b wwwwww w w b -b t w w www wwww bbbb -b w w w b -b wwwww www www w b -b w P ww w b -b t b +b w b +b w t w b +b wwwwww wwwww bbb +bbb w w w w b +b w w b +b wwwww wwwwwww bb +b wwwwww w w b +b w w www wwww bbbb +b w w w b +b wwwww www www w b +b w ww w b +b P b b w www w www w ww b -b w wwww bb -b bbbb b b bb t b +b w wwww bb +b bbbb b b bb b bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb \ No newline at end of file diff --git a/main/src/trash.py b/main/src/trash.py index 888432c..47ac7d6 100644 --- a/main/src/trash.py +++ b/main/src/trash.py @@ -1,6 +1,8 @@ import random import pygame as pg -from settings import * +from settings import TILESIZE + + class Trash(pg.sprite.Sprite): def __init__(self, game, x, y): image = pg.image.load("img\\trash.png") @@ -10,23 +12,24 @@ class Trash(pg.sprite.Sprite): self.game = game self.image = pg.Surface((TILESIZE, TILESIZE)) self.rect = self.image.get_rect() - self.image.blit(image,(0,0)) + self.image.blit(image, (0, 0)) self.x = x self.y = y self.rect.x = x * TILESIZE self.rect.y = y * TILESIZE - self.position = (x,y) + self.position = (x, y) self.randomize_position() def randomize_position(self): - self.position = (random.randint(0, 32-1)*40, random.randint(0, 18-1)*40) + self.position = (random.randint(0, 32-1)*40, + random.randint(0, 18-1)*40) def collected(self): hits = pg.sprite.spritecollide(self, self.game.player, False) if hits: - self.image.blit(image1,(0,0)) - self.x=0 - self.y=0 + self.image.blit(image1, (0, 0)) + self.x = 0 + self.y = 0 def update(self): self.collected() diff --git a/main/src/truck1.py b/main/src/truck1.py index 1c63dcf..62ec9c6 100644 --- a/main/src/truck1.py +++ b/main/src/truck1.py @@ -1,62 +1,63 @@ import pygame as pg -from settings import * +from settings import TILESIZE, TRUCK_SPEED +from bfs import bfs +from time import sleep + + class garbageTruck(pg.sprite.Sprite): def __init__(self, game, x, y): - image = pg.image.load("img\\truck.png") + self.og_image = pg.image.load("img\\truck.png") self.groups = game.all_sprites, game.player pg.sprite.Sprite.__init__(self, self.groups) self.game = game self.image = pg.Surface((TILESIZE, TILESIZE)) - self.image.blit(image,(0,0)) + self.image.blit(self.og_image, (0, 0)) self.rect = self.image.get_rect() - self.vx, self.vy = 0, 0 + self.vx = 0 + self.vy = 0 self.x = x * TILESIZE self.y = y * TILESIZE self.capacity = 0 - self.max_capacity=3000 - self.position=[((self.x),(self.y))] - self.direction=0 + self.max_capacity = 3000 + self.position = [self.x, self.y] + self.directions = [-1, 1, 1, -1] # góra prawo dół lewo + self.d = 1 + self.turned = False + self.bfs_path = bfs() def get_position(self): - return self.position[0] + return [self.x, self.y] - def turn(self): - if self.direction==0: - self.direction=1 - else: - self.direction=0 + def turn(self, d): + self.og_image = pg.transform.rotate( + self.og_image, 90*d*-1) + self.image.blit(self.og_image, (0, 0)) + self.d = (self.d+d) % 4 - def move(self, r): - if self.direction==0: - self.vx=(TRUCK_SPEED*r) + def move(self): + if self.d in [1, 3]: + self.vx = (TRUCK_SPEED*self.directions[self.d]) else: - self.vy=(TRUCK_SPEED*r) + self.vy = (TRUCK_SPEED*self.directions[self.d]) def throw(self): - self.capacity=0 + self.capacity = 0 def get_keys(self): self.vx, self.vy = 0, 0 keys = pg.key.get_pressed() - if keys[pg.K_LEFT] or keys[pg.K_a]: - if self.direction == 0: - self.move(-1) - else: self.turn() - if keys[pg.K_RIGHT] or keys[pg.K_d]: - if self.direction == 0: - self.move(1) - else: self.turn() + if not self.turned and (keys[pg.K_LEFT] or keys[pg.K_a]): + self.turn(-1) + self.turned = True + if not self.turned and (keys[pg.K_RIGHT] or keys[pg.K_d]): + self.turn(1) + self.turned = True + if not (keys[pg.K_RIGHT] or keys[pg.K_d] or keys[pg.K_LEFT] or keys[pg.K_a]) and self.turned: + self.turned = False if keys[pg.K_UP] or keys[pg.K_w]: - if self.direction == 1: - self.move(-1) - else: self.turn() - if keys[pg.K_DOWN] or keys[pg.K_s]: - if self.direction == 1: - self.move(1) - else: self.turn() - if self.vx != 0 and self.vy != 0: - self.vx *= 1 - self.vy *= 1 + self.move() + if keys[pg.K_g] and len(self.bfs_path) != 0: + self.navigate_bfs() def collide_with_walls(self, dir): if dir == 'x': @@ -98,6 +99,33 @@ class garbageTruck(pg.sprite.Sprite): self.vy = 0 self.rect.y = self.y + def auto_drive(self, direction): + while self.d != direction: + self.turn(1) + + if direction in [1, 3]: + self.x += self.directions[self.d] * TILESIZE + else: + self.y += self.directions[self.d] * TILESIZE + + def navigate_bfs(self): + print(self.bfs_path) + dest = self.bfs_path.pop() + dest[0], dest[1] = dest[1]*TILESIZE, dest[0]*TILESIZE + + pos = [int(i) for i in self.get_position()] + print(pos[0] - dest[0], pos[1] - dest[1]) + + if pos[0] - dest[0] < 0: + self.auto_drive(1) + elif pos[0] - dest[0] > 0: + self.auto_drive(3) + + if pos[1] - dest[1] < 0: + self.auto_drive(2) + elif pos[1] - dest[1] > 0: + self.auto_drive(0) + def update(self): self.get_keys() self.x += self.vx * self.game.dt diff --git a/main/src/walls.py b/main/src/walls.py index 968c72f..8293db9 100644 --- a/main/src/walls.py +++ b/main/src/walls.py @@ -1,5 +1,6 @@ import pygame as pg -from settings import * +from settings import TILESIZE + class Wall(pg.sprite.Sprite): def __init__(self, game, x, y): @@ -9,12 +10,13 @@ class Wall(pg.sprite.Sprite): self.game = game self.image = pg.Surface((TILESIZE, TILESIZE)) self.rect = self.image.get_rect() - self.image.blit(image,(0,0)) + self.image.blit(image, (0, 0)) self.x = x self.y = y self.rect.x = x * TILESIZE self.rect.y = y * TILESIZE + class Wall1(pg.sprite.Sprite): def __init__(self, game, x, y): image = pg.image.load("img\\house.png") @@ -23,7 +25,7 @@ class Wall1(pg.sprite.Sprite): self.game = game self.image = pg.Surface((TILESIZE, TILESIZE)) self.rect = self.image.get_rect() - self.image.blit(image,(-1,-1)) + self.image.blit(image, (-1, -1)) self.x = x self.y = y self.rect.x = x * TILESIZE