Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
93ed2f39f5 | |||
230b63d87b | |||
e2facd2c42 | |||
f7612970d2 | |||
8b609f0259 | |||
7cb3aa904c | |||
9127c46938 | |||
![]() |
1dc9e45f19 | ||
![]() |
cc6fdc2e8b |
6
astar.py
6
astar.py
@ -40,7 +40,8 @@ def astar(obiekty, start, cel):
|
|||||||
continue
|
continue
|
||||||
elif 6 <= sasiad[0] <= 7 and 10 <= sasiad[1] <= 11:
|
elif 6 <= sasiad[0] <= 7 and 10 <= sasiad[1] <= 11:
|
||||||
continue
|
continue
|
||||||
tentative_h_score = heurystyka(obiekty, sasiad, cel) + heurystyka(obiekty, current, sasiad)
|
tentative_h_score = heurystyka(
|
||||||
|
obiekty, sasiad, cel) + heurystyka(obiekty, current, sasiad)
|
||||||
|
|
||||||
if sasiad in [i[1] for i in oheap] and tentative_h_score < hscore.get(current, 0):
|
if sasiad in [i[1] for i in oheap] and tentative_h_score < hscore.get(current, 0):
|
||||||
continue
|
continue
|
||||||
@ -48,7 +49,8 @@ def astar(obiekty, start, cel):
|
|||||||
came_from[sasiad] = current
|
came_from[sasiad] = current
|
||||||
hscore[sasiad] = tentative_h_score
|
hscore[sasiad] = tentative_h_score
|
||||||
fscore[sasiad] = tentative_h_score + gscore[current]
|
fscore[sasiad] = tentative_h_score + gscore[current]
|
||||||
gscore[sasiad] = gscore[current] + heurystyka(obiekty, current, sasiad)
|
gscore[sasiad] = gscore[current] + \
|
||||||
|
heurystyka(obiekty, current, sasiad)
|
||||||
heapq.heappush(oheap, (fscore[sasiad], sasiad))
|
heapq.heappush(oheap, (fscore[sasiad], sasiad))
|
||||||
obiekty["plansza"][sasiad[0], sasiad[1]].setKolor((0, 255, 0))
|
obiekty["plansza"][sasiad[0], sasiad[1]].setKolor((0, 255, 0))
|
||||||
return False
|
return False
|
||||||
|
17
game.py
17
game.py
@ -105,7 +105,7 @@ def rysowaniePlanszy(obiekty):
|
|||||||
obiekty["plansza"][7, 11].setJestPrzeszkoda(True)
|
obiekty["plansza"][7, 11].setJestPrzeszkoda(True)
|
||||||
obiekty["sprajty"].draw(obiekty["obraz"])
|
obiekty["sprajty"].draw(obiekty["obraz"])
|
||||||
text_metal, text_papier, text_plastik, text_szklo, text_pozostale, text_odwiedzone_domy = liczSmieci(
|
text_metal, text_papier, text_plastik, text_szklo, text_pozostale, text_odwiedzone_domy = liczSmieci(
|
||||||
obiekty["domy"],obiekty)
|
obiekty["domy"], obiekty)
|
||||||
obiekty["obraz"].blit(obiekty["text_pozostalo"],
|
obiekty["obraz"].blit(obiekty["text_pozostalo"],
|
||||||
(1020, 240))
|
(1020, 240))
|
||||||
obiekty["obraz"].blit(text_metal, (1020, 280))
|
obiekty["obraz"].blit(text_metal, (1020, 280))
|
||||||
@ -190,7 +190,8 @@ def utworzObiekty():
|
|||||||
dom.setImage(pygame.image.load(random.choice(doms_array)))
|
dom.setImage(pygame.image.load(random.choice(doms_array)))
|
||||||
plansza[wspolrzedne_domow[i][0],
|
plansza[wspolrzedne_domow[i][0],
|
||||||
wspolrzedne_domow[i][1]].setJestDomem(True)
|
wspolrzedne_domow[i][1]].setJestDomem(True)
|
||||||
plansza[wspolrzedne_domow[i][0], wspolrzedne_domow[i][1]].setObiekt(dom)
|
plansza[wspolrzedne_domow[i][0],
|
||||||
|
wspolrzedne_domow[i][1]].setObiekt(dom)
|
||||||
domy_lista.add(dom)
|
domy_lista.add(dom)
|
||||||
all_sprites_list.add(dom)
|
all_sprites_list.add(dom)
|
||||||
|
|
||||||
@ -249,10 +250,14 @@ def liczSmieci(domy, obiekty):
|
|||||||
elif "trash" in s:
|
elif "trash" in s:
|
||||||
ile_pozostalych += 1
|
ile_pozostalych += 1
|
||||||
|
|
||||||
text_metal = obiekty["font"].render("Metal: " + str(ile_metalu), True, WHITE)
|
text_metal = obiekty["font"].render(
|
||||||
text_papier = obiekty["font"].render("Papier: " + str(ile_papieru), True, WHITE)
|
"Metal: " + str(ile_metalu), True, WHITE)
|
||||||
text_plastik = obiekty["font"].render("Plastik: " + str(ile_plastiku), True, WHITE)
|
text_papier = obiekty["font"].render(
|
||||||
text_szklo = obiekty["font"].render("Szkło: " + str(ile_szkla), True, WHITE)
|
"Papier: " + str(ile_papieru), True, WHITE)
|
||||||
|
text_plastik = obiekty["font"].render(
|
||||||
|
"Plastik: " + str(ile_plastiku), True, WHITE)
|
||||||
|
text_szklo = obiekty["font"].render(
|
||||||
|
"Szkło: " + str(ile_szkla), True, WHITE)
|
||||||
text_pozostale = obiekty["font"].render(
|
text_pozostale = obiekty["font"].render(
|
||||||
"Pozostałe: " + str(ile_pozostalych), True, WHITE)
|
"Pozostałe: " + str(ile_pozostalych), True, WHITE)
|
||||||
text_odwiedzone_domy = obiekty["font"].render(
|
text_odwiedzone_domy = obiekty["font"].render(
|
||||||
|
15
modele.py
15
modele.py
@ -57,7 +57,8 @@ class Smieciarka(pygame.sprite.Sprite):
|
|||||||
self.w_dol()
|
self.w_dol()
|
||||||
|
|
||||||
def astar_move(self, obiekty):
|
def astar_move(self, obiekty):
|
||||||
sciezka = astar.astar(obiekty, self.pozycja, (random.randrange(15), random.randrange(15)))
|
sciezka = astar.astar(obiekty, self.pozycja,
|
||||||
|
(random.randrange(15), random.randrange(15)))
|
||||||
print(sciezka)
|
print(sciezka)
|
||||||
if sciezka:
|
if sciezka:
|
||||||
for koord in sciezka:
|
for koord in sciezka:
|
||||||
@ -75,7 +76,8 @@ class Smieciarka(pygame.sprite.Sprite):
|
|||||||
if self.plansza[self.x - 1, self.y].jestPrzeszkoda is not True:
|
if self.plansza[self.x - 1, self.y].jestPrzeszkoda is not True:
|
||||||
if self.plansza[self.x - 1, self.y].jestDomem is True:
|
if self.plansza[self.x - 1, self.y].jestDomem is True:
|
||||||
if [self.x - 1, self.y] not in self.wspolrzedne_odwiedzonych_domow:
|
if [self.x - 1, self.y] not in self.wspolrzedne_odwiedzonych_domow:
|
||||||
self.wspolrzedne_odwiedzonych_domow.append([self.x - 1, self.y])
|
self.wspolrzedne_odwiedzonych_domow.append(
|
||||||
|
[self.x - 1, self.y])
|
||||||
self.zwiekszIloscOdwiedzonychDomow()
|
self.zwiekszIloscOdwiedzonychDomow()
|
||||||
if self.ruch == 2:
|
if self.ruch == 2:
|
||||||
self.image = pygame.image.load(
|
self.image = pygame.image.load(
|
||||||
@ -94,7 +96,8 @@ class Smieciarka(pygame.sprite.Sprite):
|
|||||||
if self.plansza[self.x + 1, self.y].jestPrzeszkoda is not True:
|
if self.plansza[self.x + 1, self.y].jestPrzeszkoda is not True:
|
||||||
if self.plansza[self.x + 1, self.y].jestDomem is True:
|
if self.plansza[self.x + 1, self.y].jestDomem is True:
|
||||||
if [self.x + 1, self.y] not in self.wspolrzedne_odwiedzonych_domow:
|
if [self.x + 1, self.y] not in self.wspolrzedne_odwiedzonych_domow:
|
||||||
self.wspolrzedne_odwiedzonych_domow.append([self.x + 1, self.y])
|
self.wspolrzedne_odwiedzonych_domow.append(
|
||||||
|
[self.x + 1, self.y])
|
||||||
self.zwiekszIloscOdwiedzonychDomow()
|
self.zwiekszIloscOdwiedzonychDomow()
|
||||||
if self.ruch == 1:
|
if self.ruch == 1:
|
||||||
self.image = pygame.transform.flip(self.image, True, False)
|
self.image = pygame.transform.flip(self.image, True, False)
|
||||||
@ -112,7 +115,8 @@ class Smieciarka(pygame.sprite.Sprite):
|
|||||||
if self.plansza[self.x, self.y - 1].jestPrzeszkoda is not True:
|
if self.plansza[self.x, self.y - 1].jestPrzeszkoda is not True:
|
||||||
if self.plansza[self.x, self.y - 1].jestDomem is True:
|
if self.plansza[self.x, self.y - 1].jestDomem is True:
|
||||||
if [self.x, self.y - 1] not in self.wspolrzedne_odwiedzonych_domow:
|
if [self.x, self.y - 1] not in self.wspolrzedne_odwiedzonych_domow:
|
||||||
self.wspolrzedne_odwiedzonych_domow.append([self.x, self.y - 1])
|
self.wspolrzedne_odwiedzonych_domow.append(
|
||||||
|
[self.x, self.y - 1])
|
||||||
self.zwiekszIloscOdwiedzonychDomow()
|
self.zwiekszIloscOdwiedzonychDomow()
|
||||||
|
|
||||||
self.plansza[self.x, self.y - 1].setKolor(BLUE)
|
self.plansza[self.x, self.y - 1].setKolor(BLUE)
|
||||||
@ -127,7 +131,8 @@ class Smieciarka(pygame.sprite.Sprite):
|
|||||||
if self.plansza[self.x, self.y + 1].jestPrzeszkoda is not True:
|
if self.plansza[self.x, self.y + 1].jestPrzeszkoda is not True:
|
||||||
if self.plansza[self.x, self.y + 1].jestDomem is True:
|
if self.plansza[self.x, self.y + 1].jestDomem is True:
|
||||||
if [self.x, self.y + 1] not in self.wspolrzedne_odwiedzonych_domow:
|
if [self.x, self.y + 1] not in self.wspolrzedne_odwiedzonych_domow:
|
||||||
self.wspolrzedne_odwiedzonych_domow.append([self.x, self.y + 1])
|
self.wspolrzedne_odwiedzonych_domow.append(
|
||||||
|
[self.x, self.y + 1])
|
||||||
self.zwiekszIloscOdwiedzonychDomow()
|
self.zwiekszIloscOdwiedzonychDomow()
|
||||||
|
|
||||||
self.plansza[self.x, self.y + 1].setKolor(BLUE)
|
self.plansza[self.x, self.y + 1].setKolor(BLUE)
|
||||||
|
Loading…
Reference in New Issue
Block a user