astar ruch smieciarki

This commit is contained in:
s444349 2020-04-25 23:46:33 +02:00
parent a19449a1c4
commit 83c00349d5
2 changed files with 23 additions and 2 deletions

View File

@ -41,6 +41,7 @@ def game():
# Petla az uzytkownik zamknie program # Petla az uzytkownik zamknie program
done = False done = False
clock = pygame.time.Clock() clock = pygame.time.Clock()
temp = True
# -------- Glowna petla programu ----------- # -------- Glowna petla programu -----------
while not done: while not done:
@ -69,11 +70,15 @@ def game():
obiekty["smieciarka"].w_dol() obiekty["smieciarka"].w_dol()
obiekty["smieciarka"].rand_move() #obiekty["smieciarka"].rand_move()
while(temp):
obiekty["smieciarka"].astar_move(obiekty)
temp = False
clock.tick(7) clock.tick(7)
#start = obiekty["plansza"][0, 14] #start = obiekty["plansza"][0, 14]
#koniec = obiekty["plansza"][14, 0] #koniec = obiekty["plansza"][14, 0]
print(astar.astar(obiekty, (0, 14), (14, 0)))
#print(astar.astar(obiekty, (0, 14), (14, 0)))
#print(len(astar.astar(start, koniec))) #print(len(astar.astar(start, koniec)))
pygame.quit() pygame.quit()

View File

@ -3,6 +3,7 @@ import game
import random import random
import os import os
import shutil import shutil
import astar
# wysokosc i szerokosc kazdej kratki # wysokosc i szerokosc kazdej kratki
WIDTH = 60 WIDTH = 60
@ -24,6 +25,7 @@ class Smieciarka(pygame.sprite.Sprite):
def __init__(self, x, y): def __init__(self, x, y):
self.x = x self.x = x
self.y = y self.y = y
self.pozycja = (self.x, self.y)
self.image = pygame.image.load('resources/plansza/smieciarka.png') self.image = pygame.image.load('resources/plansza/smieciarka.png')
self.obraz = None self.obraz = None
self.ruch = 1 self.ruch = 1
@ -54,6 +56,20 @@ class Smieciarka(pygame.sprite.Sprite):
elif rand_int == 3: elif rand_int == 3:
self.w_dol() self.w_dol()
def astar_move(self, obiekty):
sciezka = astar.astar(obiekty, self.pozycja, (14, 0))
print(sciezka)
for koord in sciezka:
if koord[0] == self.x - 1 and koord[1] == self.y:
self.w_lewo()
elif koord[0] == self.x + 1 and koord[1] == self.y:
self.w_prawo()
elif koord[0] == self.x and koord[1] + 1 == self.y:
self.w_gore()
elif koord[0] == self.x and koord[1] - 1 == self.y:
self.w_dol()
print("skonczylem")
def w_lewo(self): def w_lewo(self):
if self.x > 0: if self.x > 0:
if self.plansza[self.x - 1, self.y].jestPrzeszkoda is not True: if self.plansza[self.x - 1, self.y].jestPrzeszkoda is not True: