From fefb9419b557a5bacda3e6806ab4f6bb914d65fb Mon Sep 17 00:00:00 2001 From: Marcin Dobrowolski Date: Wed, 29 Apr 2020 11:12:18 +0200 Subject: [PATCH] 5th part of AStar implementation --- main.py | 20 +++----- resources/images/{waiter.png => waiter_E.png} | Bin resources/images/waiter_N.png | Bin 0 -> 3228 bytes resources/images/waiter_S.png | Bin 0 -> 3228 bytes resources/images/waiter_W.png | Bin 0 -> 3228 bytes src/__pycache__/graphics.cpython-38.pyc | Bin 2296 -> 2761 bytes src/__pycache__/waiter.cpython-38.pyc | Bin 4486 -> 4431 bytes src/graphics.py | 43 ++++++++++++------ src/waiter.py | 32 ++++++------- 9 files changed, 48 insertions(+), 47 deletions(-) rename resources/images/{waiter.png => waiter_E.png} (100%) create mode 100644 resources/images/waiter_N.png create mode 100644 resources/images/waiter_S.png create mode 100644 resources/images/waiter_W.png diff --git a/main.py b/main.py index 4be355f..91a926b 100644 --- a/main.py +++ b/main.py @@ -14,11 +14,10 @@ if __name__ == "__main__": # init functions graphics.drawBackground(waiter.matrix) - graphics.update(waiter.X, waiter.Y) + graphics.update(waiter) goal = None - path = [(0, 0)] - # print(waiter.findPath()) + path = '' while True: for event in pygame.event.get(): if event.type == pygame.QUIT: @@ -43,19 +42,12 @@ if __name__ == "__main__": goal = (x, y) path = waiter.findPath(goal) - print('goal: {}'.format(goal)) + path = waiter.translatePath(path) - if path != []: - print(path) - nextStep = path.pop(0) - print(nextStep) + if path != '': + nextStep = path[0] + path = path[1:] waiter.travel(nextStep, graphics) - print('{} {} current position'.format(waiter.X, waiter.Y)) - ''' - graphics.clear(waiter.X, waiter.Y) - waiter.update(event, graphics) - graphics.update(waiter.X, waiter.Y) - ''' pygame.display.flip() clock.tick(fps) diff --git a/resources/images/waiter.png b/resources/images/waiter_E.png similarity index 100% rename from resources/images/waiter.png rename to resources/images/waiter_E.png diff --git a/resources/images/waiter_N.png b/resources/images/waiter_N.png new file mode 100644 index 0000000000000000000000000000000000000000..ca803352c3963fcee9c9142f2c1ac11ac722cd5d GIT binary patch literal 3228 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 M>J-gW!hh4n8&Kwnn*aa+ delta 331 zcmX>p`a_T}l$V!_0SMYIEQ&MdoXEG5iwDSa2IAr+6Az|~rEt#Ss$qy{OaYP1DcnGk zC52~l45Ky+uU}Q{WCNCv$@dvgFvfvd2bkG5Yq3mc)aAOxnwFEFUlheso|uyp#hjE_ z6vYW7;vu4}C5cHnskhk56EjOvix%^-F)GP{T*1V}hylNG@USt0;ASg!V@6SNkkdeJ zWMJe2LJcMmIe8LCiug*FB7UH7kr;^J1QFaoV&!CBPBm!-Agh=ONH8!~@wpcz7Gz{5 z7waYGq$U++*vR*jQD4eTV5nipVgzEQg-nb<_5$V<#u^BlX#sN$ z!$L-&C}Ro}P<0Ge)l67aGXqt3Ayk_n8P1HZJcS{cL6gO=ND=6)A_Wj310*zACZFRM z7ho)x^N3&^7!X((aAI-R*+7ho5yOR^q9S5x7_@}J#6%Z|`vS+L ztMP-l-{k5?Fvi5!)5SLL*MHvoy`*ooySl$$D7XaASMT|#SbOn5^JP|ob;f~H8(ivx zM_q8)YsGDIxR1O3)51dE#@fc3J|Hwnh=vnb!kj4(kWfv|m=uA%wnKXTIoDj! zb1DxtO*k4Bmc67nCrM6FO|wjs+`kzY40k4(!;G`Q1ui%?8(EY8E?zYR*&|JB_u9Le zS6kIT$PN6UtQu4hO-HuzNv(-I9jnwnzLXcClEthy7)7C!1>^b#bwtyWt0uP$a)^VD zuVgr$jzSfQPN;@yelQGWI8c$4C1YhMV@ho_XVK^b^K=bCz=IMvcmqrUb*RT28m|N$ T*oynXCUoOR%-`{QFoxL=i`82_ diff --git a/src/graphics.py b/src/graphics.py index b593205..152e2e1 100644 --- a/src/graphics.py +++ b/src/graphics.py @@ -5,32 +5,47 @@ class Graphics: def __init__(self): self.image = { 'floor': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/floor.jpg'), - 'wall': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/wall.png'), # - 'bar': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/table3.png'), # - 'bar_floor': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/waiter.png'), + # + 'wall': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/wall.png'), + # + 'bar': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/table3.png'), + 'bar_floor': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/waiter_N.png'), 'table': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/table3.png'), - 'waiter': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/waiter.png'), - 'chair_front': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/chair-front.png'), # - 'chair_back': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/chair-back.png'), # - 'chair_left': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/chair-left.png'), # - 'chair_right': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/chair-right.png') # + 'waiter_N': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/waiter_N.png'), + 'waiter_S': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/waiter_S.png'), + 'waiter_E': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/waiter_E.png'), + 'waiter_W': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/waiter_W.png'), + # + 'chair_front': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/chair-front.png'), + # + 'chair_back': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/chair-back.png'), + # + 'chair_left': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/chair-left.png'), + # + 'chair_right': pygame.image.load('/Users/marcindobrowolski/Desktop/Python/Sztuczna_Inteligencja_2020/resources/images/chair-right.png') } self.block_size = 50 self.height = 15 self.width: int = 14 - self.screen = pygame.display.set_mode((self.block_size * self.width, self.block_size * self.height)) + self.screen = pygame.display.set_mode( + (self.block_size * self.width, self.block_size * self.height)) def drawBackground(self, matrix): for y in range(self.height): for x in range(self.width): - self.screen.blit(self.image['floor'], (x * self.block_size, y * self.block_size)) + self.screen.blit( + self.image['floor'], (x * self.block_size, y * self.block_size)) for y in range(self.height): for x in range(self.width): - self.screen.blit(self.image[matrix.get_type(x, y)], (x * self.block_size, y * self.block_size)) + self.screen.blit(self.image[matrix.get_type( + x, y)], (x * self.block_size, y * self.block_size)) def clear(self, x, y): - self.screen.blit(self.image['floor'], (x * self.block_size, y * self.block_size)) + self.screen.blit(self.image['floor'], + (x * self.block_size, y * self.block_size)) - def update(self, x, y): - self.screen.blit(self.image['waiter'], (x * self.block_size, y * self.block_size)) + def update(self, waiter): + model = 'waiter_' + waiter.direction + self.screen.blit( + self.image[model], (waiter.X * self.block_size, waiter.Y * self.block_size)) diff --git a/src/waiter.py b/src/waiter.py index be879b1..122cdde 100644 --- a/src/waiter.py +++ b/src/waiter.py @@ -55,11 +55,9 @@ class Waiter(pygame.sprite.Sprite): # AStar def findPath(self, goal): - # Stworzenie startowego i koncowego wierzcholka startNode = self.matrix.matrix[self.X][self.Y] goalNode = self.matrix.matrix[goal[0]][goal[1]] - # Inicjalizacja list openList = [] closedList = [] @@ -72,7 +70,6 @@ class Waiter(pygame.sprite.Sprite): currentNode = openList.pop(0) closedList.append(currentNode) - # Tutaj odbywac sie bedzie budowanie sciezki gdy algorytm osiagnie cel if currentNode == goalNode: path = [] current = currentNode @@ -230,24 +227,21 @@ class Waiter(pygame.sprite.Sprite): return output - def travel(self, goal, graphics): - translatedPath = self.translatePath([goal]) - print('{} - {} - {}'.format(self.direction, goal, translatedPath)) - for character in translatedPath: - if character == 'F': - graphics.clear(self.X, self.Y) - self.update('F', graphics) - graphics.update(self.X, self.Y) + def travel(self, nextStep, graphics): + if nextStep == 'F': + graphics.clear(self.X, self.Y) + self.update('F', graphics) + graphics.update(self) - if character == 'R': - #graphics.clear(self.X, self.Y) - self.update('R', graphics) - #graphics.update(self.X, self.Y) + if nextStep == 'R': + graphics.clear(self.X, self.Y) + self.update('R', graphics) + graphics.update(self) - if character == 'L': - #graphics.clear(self.X, self.Y) - self.update('L', graphics) - #graphics.update(self.X, self.Y) + if nextStep == 'L': + graphics.clear(self.X, self.Y) + self.update('L', graphics) + graphics.update(self) def getTotalCost(tile):