dodany wybór osoby
61
game.py
@ -7,6 +7,18 @@ import shutil
|
|||||||
import astar
|
import astar
|
||||||
import uczenie_kacper as kacper
|
import uczenie_kacper as kacper
|
||||||
|
|
||||||
|
smieci_path = ''
|
||||||
|
|
||||||
|
# PODAJ OSOBE PRZED URUCHOMIENIEM (kacper/adamB/adamO)
|
||||||
|
osoba = 'kacper'
|
||||||
|
|
||||||
|
if osoba == 'kacper':
|
||||||
|
smieci_path = 'resources/smieci'
|
||||||
|
elif osoba == 'adamB':
|
||||||
|
smieci_path = 'resources/smieci_stare'
|
||||||
|
else:
|
||||||
|
smieci_path = 'resources/smieci_stare'
|
||||||
|
|
||||||
pygame.init()
|
pygame.init()
|
||||||
|
|
||||||
# kolory
|
# kolory
|
||||||
@ -32,18 +44,13 @@ ILOSC_KOLUMN = 15
|
|||||||
WINDOW_SIZE = [1300, 980]
|
WINDOW_SIZE = [1300, 980]
|
||||||
|
|
||||||
|
|
||||||
# TEST DODAWANIA SMIECI Z POJEDYNCZEGO DOMU DO FOLDERU KONTENERA ZE SZKLEM
|
|
||||||
# for d in lista_domow:
|
|
||||||
# for s in d.smieci:
|
|
||||||
# kontener_szklo.dodajSmiec(s)
|
|
||||||
|
|
||||||
def game():
|
def game():
|
||||||
obiekty = utworzObiekty()
|
obiekty = utworzObiekty()
|
||||||
nieodwiedzone_domy = obiekty["wspolrzedne_domow"]
|
nieodwiedzone_domy = obiekty["wspolrzedne_domow"]
|
||||||
nieodwiedzone_kontenery = [(obiekty["kontener_szklo"].x, obiekty["kontener_szklo"].y),
|
nieodwiedzone_kontenery = [(obiekty["kontener_szklo"].x, obiekty["kontener_szklo"].y),
|
||||||
(obiekty["kontener_papier"].x, obiekty["kontener_papier"].y),
|
(obiekty["kontener_papier"].x, obiekty["kontener_papier"].y),
|
||||||
(obiekty["kontener_metal"].x, obiekty["kontener_metal"].y),
|
(obiekty["kontener_metal"].x, obiekty["kontener_metal"].y),
|
||||||
(obiekty["kontener_plastik"].x, obiekty["kontener_plastik"].y),]
|
(obiekty["kontener_plastik"].x, obiekty["kontener_plastik"].y), ]
|
||||||
# Petla az uzytkownik zamknie program
|
# Petla az uzytkownik zamknie program
|
||||||
done = False
|
done = False
|
||||||
clock = pygame.time.Clock()
|
clock = pygame.time.Clock()
|
||||||
@ -52,9 +59,9 @@ def game():
|
|||||||
while not done:
|
while not done:
|
||||||
|
|
||||||
# obsluga zdarzen typu nacisniecie klawisza lub przycisku myszy
|
# obsluga zdarzen typu nacisniecie klawisza lub przycisku myszy
|
||||||
for event in pygame.event.get(): # User did something
|
for event in pygame.event.get():
|
||||||
if event.type == pygame.QUIT: # If user clicked close
|
if event.type == pygame.QUIT:
|
||||||
done = True # Flag that we are done so we exit this loop
|
done = True
|
||||||
elif event.type == pygame.MOUSEBUTTONDOWN:
|
elif event.type == pygame.MOUSEBUTTONDOWN:
|
||||||
# Zapisywanie pozycji myszki po kliknieciu
|
# Zapisywanie pozycji myszki po kliknieciu
|
||||||
pozycja_myszki = pygame.mouse.get_pos()
|
pozycja_myszki = pygame.mouse.get_pos()
|
||||||
@ -68,7 +75,7 @@ def game():
|
|||||||
if event.key == pygame.K_LEFT:
|
if event.key == pygame.K_LEFT:
|
||||||
obiekty["smieciarka"].w_lewo()
|
obiekty["smieciarka"].w_lewo()
|
||||||
if event.key == pygame.K_RIGHT:
|
if event.key == pygame.K_RIGHT:
|
||||||
#kacper.trainModel()
|
# kacper.trainModel()
|
||||||
obiekty["smieciarka"].w_prawo()
|
obiekty["smieciarka"].w_prawo()
|
||||||
if event.key == pygame.K_UP:
|
if event.key == pygame.K_UP:
|
||||||
obiekty["smieciarka"].w_gore()
|
obiekty["smieciarka"].w_gore()
|
||||||
@ -77,16 +84,25 @@ def game():
|
|||||||
|
|
||||||
rysowaniePlanszy(obiekty)
|
rysowaniePlanszy(obiekty)
|
||||||
while nieodwiedzone_domy:
|
while nieodwiedzone_domy:
|
||||||
nieodwiedzone_domy.sort(key=lambda x: astar.heurystyka((obiekty["smieciarka"].x, obiekty["smieciarka"].y), x))
|
nieodwiedzone_domy.sort(
|
||||||
|
key=lambda x: astar.heurystyka((obiekty["smieciarka"].x, obiekty["smieciarka"].y), x))
|
||||||
cel = nieodwiedzone_domy.pop(0)
|
cel = nieodwiedzone_domy.pop(0)
|
||||||
obiekty["smieciarka"].astar_move(obiekty, (obiekty["smieciarka"].x, obiekty["smieciarka"].y), cel)
|
obiekty["smieciarka"].astar_move(obiekty, (obiekty["smieciarka"].x, obiekty["smieciarka"].y), cel)
|
||||||
pozX = cel[0]
|
pozX = cel[0]
|
||||||
pozY = cel[1]
|
pozY = cel[1]
|
||||||
for dom in obiekty["domy"]:
|
for dom in obiekty["domy"]:
|
||||||
if dom.x == pozX and dom.y == pozY:
|
if dom.x == pozX and dom.y == pozY:
|
||||||
while dom.smieci:
|
while dom.smieci:
|
||||||
smiec = dom.smieci.pop(0)
|
smiec = dom.smieci.pop(0)
|
||||||
rodzaj = kacper.przewidz(smiec)
|
|
||||||
|
rodzaj = ""
|
||||||
|
if osoba == 'kacper':
|
||||||
|
rodzaj = kacper.przewidz(smiec)
|
||||||
|
elif osoba == 'adamB':
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
|
||||||
if rodzaj == "paper":
|
if rodzaj == "paper":
|
||||||
obiekty["smieciarka"].dodajPapier(smiec)
|
obiekty["smieciarka"].dodajPapier(smiec)
|
||||||
elif rodzaj == "glass":
|
elif rodzaj == "glass":
|
||||||
@ -97,7 +113,8 @@ def game():
|
|||||||
obiekty["smieciarka"].dodajPlastik(smiec)
|
obiekty["smieciarka"].dodajPlastik(smiec)
|
||||||
|
|
||||||
while nieodwiedzone_kontenery:
|
while nieodwiedzone_kontenery:
|
||||||
nieodwiedzone_kontenery.sort(key=lambda x: astar.heurystyka((obiekty["smieciarka"].x, obiekty["smieciarka"].y), x))
|
nieodwiedzone_kontenery.sort(
|
||||||
|
key=lambda x: astar.heurystyka((obiekty["smieciarka"].x, obiekty["smieciarka"].y), x))
|
||||||
cel = nieodwiedzone_kontenery.pop(0)
|
cel = nieodwiedzone_kontenery.pop(0)
|
||||||
obiekty["smieciarka"].astar_move(obiekty, (obiekty["smieciarka"].x, obiekty["smieciarka"].y), cel)
|
obiekty["smieciarka"].astar_move(obiekty, (obiekty["smieciarka"].x, obiekty["smieciarka"].y), cel)
|
||||||
pozX = cel[0]
|
pozX = cel[0]
|
||||||
@ -194,12 +211,6 @@ def utworzObiekty():
|
|||||||
plansza[0, 4].setJestKontenerem(True)
|
plansza[0, 4].setJestKontenerem(True)
|
||||||
plansza[0, 4].setObiekt(kontener_metal)
|
plansza[0, 4].setObiekt(kontener_metal)
|
||||||
|
|
||||||
# kontener_organiczne = modele.Kontener(2, 2, "pozostale")
|
|
||||||
# kontener_organiczne.setImage(pygame.image.load(
|
|
||||||
# "resources/plansza/pojemnik_organiczne.png"))
|
|
||||||
# plansza[2, 2].setJestKontenerem(True)
|
|
||||||
# plansza[2, 2].setObiekt(kontener_organiczne)
|
|
||||||
|
|
||||||
kontener_papier = modele.Kontener(4, 0, "papier")
|
kontener_papier = modele.Kontener(4, 0, "papier")
|
||||||
kontener_papier.setImage(pygame.image.load(
|
kontener_papier.setImage(pygame.image.load(
|
||||||
"resources/plansza/pojemnik_papier.png"))
|
"resources/plansza/pojemnik_papier.png"))
|
||||||
@ -220,7 +231,7 @@ def utworzObiekty():
|
|||||||
domy_lista = pygame.sprite.Group()
|
domy_lista = pygame.sprite.Group()
|
||||||
|
|
||||||
smieci_lista = [os.path.join(path, filename)
|
smieci_lista = [os.path.join(path, filename)
|
||||||
for path, dirs, files in os.walk("resources/smieci")
|
for path, dirs, files in os.walk(smieci_path)
|
||||||
for filename in files]
|
for filename in files]
|
||||||
|
|
||||||
# informacje o ilosci smieci w domach
|
# informacje o ilosci smieci w domach
|
||||||
@ -238,18 +249,10 @@ def utworzObiekty():
|
|||||||
all_sprites_list.add(dom)
|
all_sprites_list.add(dom)
|
||||||
|
|
||||||
lista_domow = domy_lista.sprites()
|
lista_domow = domy_lista.sprites()
|
||||||
acc = 0
|
|
||||||
for d in lista_domow:
|
for d in lista_domow:
|
||||||
for j in range(5):
|
for j in range(5):
|
||||||
smiec = random.choice(smieci_lista)
|
smiec = random.choice(smieci_lista)
|
||||||
d.dodajSmiec(smiec)
|
d.dodajSmiec(smiec)
|
||||||
# print('')
|
|
||||||
# print(smiec)
|
|
||||||
# print(kacper.przewidz(smiec))
|
|
||||||
# if kacper.przewidz(smiec) in smiec:
|
|
||||||
# acc += 1
|
|
||||||
# smieci_lista.remove(smiec)
|
|
||||||
# print(acc)
|
|
||||||
|
|
||||||
# ustawienie wysypiska, rozmiar wysypiska 5x5
|
# ustawienie wysypiska, rozmiar wysypiska 5x5
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
|
@ -58,7 +58,7 @@ class Smieciarka(pygame.sprite.Sprite):
|
|||||||
def astar_move(self, obiekty, start, cel):
|
def astar_move(self, obiekty, start, cel):
|
||||||
|
|
||||||
sciezka = astar.astar(obiekty, start, (cel[0], cel[1]))
|
sciezka = astar.astar(obiekty, start, (cel[0], cel[1]))
|
||||||
print(sciezka)
|
# print(sciezka)
|
||||||
if sciezka:
|
if sciezka:
|
||||||
for koord in sciezka:
|
for koord in sciezka:
|
||||||
if koord[0] == self.x - 1 and koord[1] == self.y:
|
if koord[0] == self.x - 1 and koord[1] == self.y:
|
||||||
|
BIN
resources/smieci w kontenerach/metal/google-image(0085).jpeg
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
resources/smieci w kontenerach/metal/google-image(0141).jpeg
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
resources/smieci w kontenerach/metal/google-image(0169).jpeg
Normal file
After Width: | Height: | Size: 43 KiB |
BIN
resources/smieci w kontenerach/metal/google-image(0179).jpeg
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
resources/smieci w kontenerach/metal/google-image(0434).jpeg
Normal file
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 17 KiB |
BIN
resources/smieci w kontenerach/papier/IMG_20170408_221337.jpg
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
resources/smieci w kontenerach/papier/google-image(0055).jpeg
Normal file
After Width: | Height: | Size: 118 KiB |
BIN
resources/smieci w kontenerach/papier/google-image(0136).jpeg
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
resources/smieci w kontenerach/papier/google-image(0194).jpeg
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
resources/smieci w kontenerach/papier/google-image(0271).jpeg
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
resources/smieci w kontenerach/papier/google-image(0532).jpeg
Normal file
After Width: | Height: | Size: 82 KiB |
BIN
resources/smieci w kontenerach/papier/hG24Xu3cdM8.jpg
Normal file
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 20 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0045).jpeg
Normal file
After Width: | Height: | Size: 8.9 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0057).jpeg
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0059).jpeg
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0107).jpeg
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0141).jpeg
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0151).jpeg
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0171_3).jpeg
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0184).jpeg
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0193).jpeg
Normal file
After Width: | Height: | Size: 8.0 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0249).jpeg
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0311).jpeg
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0312).jpeg
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0378).jpeg
Normal file
After Width: | Height: | Size: 8.1 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0380)_2.jpeg
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0462).jpeg
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0615).jpeg
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0627).jpeg
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
resources/smieci w kontenerach/plastik/google-image(0641)_2.jpeg
Normal file
After Width: | Height: | Size: 27 KiB |
BIN
resources/smieci w kontenerach/szklo/KsncTC084n8.jpg
Normal file
After Width: | Height: | Size: 9.3 KiB |
BIN
resources/smieci w kontenerach/szklo/google-image(0017).jpeg
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
resources/smieci w kontenerach/szklo/google-image(0034).jpeg
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
resources/smieci w kontenerach/szklo/google-image(0070).jpeg
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
resources/smieci w kontenerach/szklo/google-image(0079).jpeg
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
resources/smieci w kontenerach/szklo/google-image(0087).jpeg
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
resources/smieci w kontenerach/szklo/google-image(0106).jpeg
Normal file
After Width: | Height: | Size: 29 KiB |
BIN
resources/smieci w kontenerach/szklo/google-image(0157).jpeg
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
resources/smieci w kontenerach/szklo/google-image(0265).jpeg
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
resources/smieci w kontenerach/szklo/google-image(0267).jpeg
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
resources/smieci w kontenerach/szklo/google-image(0308).jpeg
Normal file
After Width: | Height: | Size: 8.2 KiB |
BIN
resources/smieci w kontenerach/szklo/google-image(0418).jpeg
Normal file
After Width: | Height: | Size: 9.4 KiB |