added letters
This commit is contained in:
parent
aa340e68d3
commit
133e54ab12
28
ekran.py
28
ekran.py
@ -1,7 +1,7 @@
|
|||||||
import pygame
|
import pygame
|
||||||
import plansza
|
import plansza
|
||||||
from regal import Regal
|
from regal import Regal
|
||||||
from packageList import *
|
from itemList import *
|
||||||
|
|
||||||
EKRAN_SZEROKOSC = 770
|
EKRAN_SZEROKOSC = 770
|
||||||
EKRAN_WYSOKOSC = 770
|
EKRAN_WYSOKOSC = 770
|
||||||
@ -14,8 +14,9 @@ pygame.display.set_caption("Inteligentny wozek")
|
|||||||
icon = pygame.image.load('images/icon.png')
|
icon = pygame.image.load('images/icon.png')
|
||||||
pygame.display.set_icon(icon)
|
pygame.display.set_icon(icon)
|
||||||
|
|
||||||
lista_paczek = []
|
lista_itemow = []
|
||||||
lista_paczek_na_regalach = []
|
lista_paczek_na_regalach = []
|
||||||
|
lista_listow_w_skrzynce = []
|
||||||
|
|
||||||
def narysuj_regaly():
|
def narysuj_regaly():
|
||||||
global lista_regalow
|
global lista_regalow
|
||||||
@ -62,7 +63,7 @@ def odswiez_ekran(wozek):
|
|||||||
screen.blit(miejsce,(plansza.a_pix, plansza.b_pix))
|
screen.blit(miejsce,(plansza.a_pix, plansza.b_pix))
|
||||||
screen.blit(skrzynka,(plansza.c_pix, plansza.d_pix))
|
screen.blit(skrzynka,(plansza.c_pix, plansza.d_pix))
|
||||||
narysuj_siatke()
|
narysuj_siatke()
|
||||||
narysuj_paczki(wozek)
|
narysuj_items()
|
||||||
narysuj_paczke_na_regale()
|
narysuj_paczke_na_regale()
|
||||||
narysuj_regaly()
|
narysuj_regaly()
|
||||||
wozek.draw()
|
wozek.draw()
|
||||||
@ -85,17 +86,26 @@ def sprawdz_ktora_kolumna(y):
|
|||||||
nr_kolumny = nr_kolumny + 1
|
nr_kolumny = nr_kolumny + 1
|
||||||
|
|
||||||
|
|
||||||
def narysuj_paczki(wozek):
|
def narysuj_items():
|
||||||
for paczka in lista_paczek:
|
for item in lista_itemow:
|
||||||
paczka.narysuj(paczka.x, paczka.y, screen)
|
item.narysuj(item.x, item.y, screen)
|
||||||
|
|
||||||
def narysuj_paczke_na_regale():
|
def narysuj_paczke_na_regale():
|
||||||
for paczka in lista_paczek_na_regalach:
|
for paczka in lista_paczek_na_regalach:
|
||||||
if paczka.is_in_move is False:
|
if paczka.is_in_move is False:
|
||||||
paczka.narysuj(paczka.x, paczka.y, screen)
|
paczka.narysuj(paczka.x, paczka.y, screen)
|
||||||
|
|
||||||
def dodaj_paczki_na_rampe(p1, p2):
|
def narysuj_list_na_skrzynce():
|
||||||
lista_paczek.append(p1)
|
for letter in lista_listow_w_skrzynce:
|
||||||
lista_paczek.append(p2)
|
if letter.is_in_move is False:
|
||||||
|
letter.narysuj(letter.x, letter.y, screen)
|
||||||
|
|
||||||
|
def dodaj_na_rampe(p1, p2, l1, l2):
|
||||||
|
lista_itemow.append(p1)
|
||||||
|
lista_itemow.append(p2)
|
||||||
|
lista_itemow.append(l1)
|
||||||
|
lista_itemow.append(l2)
|
||||||
p1.update_position(plansza.a_pix, plansza.b_pix)
|
p1.update_position(plansza.a_pix, plansza.b_pix)
|
||||||
p2.update_position(plansza.a_pix, plansza.b_pix)
|
p2.update_position(plansza.a_pix, plansza.b_pix)
|
||||||
|
l1.update_position(plansza.a_pix, plansza.b_pix)
|
||||||
|
l2.update_position(plansza.a_pix, plansza.b_pix)
|
BIN
images/letter.png
Normal file
BIN
images/letter.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
@ -2,17 +2,17 @@ import pygame
|
|||||||
|
|
||||||
# from paczka import Paczka
|
# from paczka import Paczka
|
||||||
|
|
||||||
class listOfPackages:
|
class listOfItems:
|
||||||
list = []
|
list = []
|
||||||
package_group = pygame.sprite.Group()
|
item_group = pygame.sprite.Group()
|
||||||
|
|
||||||
def add(self, item):
|
def add(self, item):
|
||||||
self.list.append(item)
|
self.list.append(item)
|
||||||
self.package_group.add(item)
|
self.item_group.add(item)
|
||||||
|
|
||||||
def remove(self):
|
def remove(self):
|
||||||
last_package = self.list.pop()
|
last_item = self.list.pop()
|
||||||
self.package_group.remove(last_package)
|
self.item_group.remove(last_item)
|
||||||
|
|
||||||
|
|
||||||
# def zainicjuj_liste_paczek(init_x, init_y):
|
# def zainicjuj_liste_paczek(init_x, init_y):
|
23
letter.py
Normal file
23
letter.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import pygame
|
||||||
|
|
||||||
|
letter_pic = pygame.image.load("images/letter.png")
|
||||||
|
|
||||||
|
class Letter(pygame.sprite.Sprite):
|
||||||
|
def __init__(self, id):
|
||||||
|
super().__init__()
|
||||||
|
self.id = id
|
||||||
|
self.image = pygame.transform.scale(letter_pic, (40, 40))
|
||||||
|
self.rect = self.image.get_rect()
|
||||||
|
self.x = 430
|
||||||
|
self.y = 400
|
||||||
|
self.is_in_move = False
|
||||||
|
|
||||||
|
def narysuj(self, x, y, screen):
|
||||||
|
self.x = x
|
||||||
|
self.y = y
|
||||||
|
screen.blit(self.image, (self.x, self.y))
|
||||||
|
|
||||||
|
def update_position(self, x, y):
|
||||||
|
self.x = x
|
||||||
|
self.y = y
|
||||||
|
self.rect.topleft = (x, y)
|
70
main.py
70
main.py
@ -3,10 +3,12 @@ import sys
|
|||||||
import joblib
|
import joblib
|
||||||
import pygame
|
import pygame
|
||||||
from paczka import Paczka
|
from paczka import Paczka
|
||||||
|
from letter import Letter
|
||||||
from wozek import Wozek
|
from wozek import Wozek
|
||||||
import wyszukiwanie
|
import wyszukiwanie
|
||||||
import ekran
|
import ekran
|
||||||
from grid import GridCellType, SearchGrid
|
from grid import GridCellType, SearchGrid
|
||||||
|
import plansza
|
||||||
|
|
||||||
|
|
||||||
from plansza import a_pix, b_pix
|
from plansza import a_pix, b_pix
|
||||||
@ -17,7 +19,9 @@ def main():
|
|||||||
wozek = Wozek()
|
wozek = Wozek()
|
||||||
p1 = Paczka('duzy', 12, 'narzedzia', False, True, False, any, any, any, any, any)
|
p1 = Paczka('duzy', 12, 'narzedzia', False, True, False, any, any, any, any, any)
|
||||||
p2 = Paczka('maly', 1, 'ogród', False, True, False, any, any, any, any, any)
|
p2 = Paczka('maly', 1, 'ogród', False, True, False, any, any, any, any, any)
|
||||||
ekran.dodaj_paczki_na_rampe(p1, p2)
|
l1 = Letter(1)
|
||||||
|
l2 = Letter(2)
|
||||||
|
ekran.dodaj_na_rampe(p2, l1, p1, l2)
|
||||||
grid_points = SearchGrid()
|
grid_points = SearchGrid()
|
||||||
|
|
||||||
# Odczyt drzewa z pliku
|
# Odczyt drzewa z pliku
|
||||||
@ -31,43 +35,57 @@ def main():
|
|||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
if event.type == pygame.KEYDOWN:
|
if event.type == pygame.KEYDOWN:
|
||||||
if event.key == pygame.K_SPACE:
|
if event.key == pygame.K_SPACE:
|
||||||
## sprawdzenie czy lista z paczkami nie jest pusta
|
|
||||||
if ekran.lista_paczek:
|
## wozek jedzie po itemy
|
||||||
## wozek jedzie po paczke
|
wiersz = ekran.sprawdz_ktory_wiersz(a_pix)
|
||||||
wiersz = ekran.sprawdz_ktory_wiersz(a_pix)
|
kolumna = ekran.sprawdz_ktora_kolumna(b_pix)
|
||||||
kolumna = ekran.sprawdz_ktora_kolumna(b_pix)
|
docelowy_stan = wyszukiwanie.Stan(wiersz * 70, kolumna * 70, 1)
|
||||||
docelowy_stan = wyszukiwanie.Stan(wiersz * 70, kolumna * 70, 1)
|
|
||||||
|
|
||||||
#wezel = wyszukiwanie.wyszukiwanie_bfs(wozek.obecnyStan, docelowy_stan, grid_points)
|
#wezel = wyszukiwanie.wyszukiwanie_bfs(wozek.obecnyStan, docelowy_stan, grid_points)
|
||||||
wezel = wyszukiwanie.wyszukiwanie_a_star(wozek.obecnyStan, docelowy_stan, grid_points)
|
wezel = wyszukiwanie.wyszukiwanie_a_star(wozek.obecnyStan, docelowy_stan, grid_points)
|
||||||
sciezka = wyszukiwanie.znajdz_sciezke(wezel)
|
sciezka = wyszukiwanie.znajdz_sciezke(wezel)
|
||||||
wozek.przemiesc_wozek_po_sciezce(sciezka)
|
wozek.przemiesc_wozek_po_sciezce(sciezka)
|
||||||
|
|
||||||
if grid_points.grid[(wiersz, kolumna)] is GridCellType.PLACE: #picks up package
|
## sprawdzenie czy lista itemow nie jest pusta
|
||||||
|
if ekran.lista_itemow:
|
||||||
|
if grid_points.grid[(wiersz, kolumna)] is GridCellType.PLACE: #picks up item
|
||||||
if wozek.ln == 0:
|
if wozek.ln == 0:
|
||||||
wozek.picks_up_package()
|
wozek.picks_up_item()
|
||||||
wozek.dynamic_wozek_picture()
|
wozek.dynamic_wozek_picture()
|
||||||
|
|
||||||
## wozek jedzie odlozyc paczke na regal
|
przenoszony_item = wozek.storage[-1]
|
||||||
przenoszona_paczka = wozek.storage[-1]
|
if isinstance(przenoszony_item,Paczka):
|
||||||
|
## wozek jedzie odlozyc paczke na regal
|
||||||
|
przenoszona_paczka = przenoszony_item
|
||||||
|
|
||||||
array, reg = przenoszona_paczka.tablica_do_drzewa(przenoszona_paczka.kategoria)
|
array, reg = przenoszona_paczka.tablica_do_drzewa(przenoszona_paczka.kategoria)
|
||||||
|
|
||||||
predictions = drzewo.predict([array])
|
predictions = drzewo.predict([array])
|
||||||
|
|
||||||
if predictions == 0:
|
if predictions == 0:
|
||||||
print('odklada na dolna polke!')
|
print('odklada na dolna polke!')
|
||||||
|
else:
|
||||||
|
print('odklada na gorna polke!')
|
||||||
|
|
||||||
|
docelowy_stan = wyszukiwanie.Stan(reg.numerWiersza * 70, reg.numerKolumny * 70, 1)
|
||||||
|
wezel = wyszukiwanie.wyszukiwanie_a_star(wozek.obecnyStan, docelowy_stan, grid_points)
|
||||||
|
sciezka = wyszukiwanie.znajdz_sciezke(wezel)
|
||||||
|
wozek.przemiesc_wozek_po_sciezce(sciezka)
|
||||||
|
|
||||||
|
if wozek.ln != 0: # drops package
|
||||||
|
wozek.drops_package(przenoszona_paczka, reg, predictions)
|
||||||
|
wozek.dynamic_wozek_picture()
|
||||||
else:
|
else:
|
||||||
print('odklada na gorna polke!')
|
#list przenoszony do skrzynki
|
||||||
|
docelowy_stan = wyszukiwanie.Stan(plansza.c_pix, plansza.d_pix, 1)
|
||||||
|
wezel = wyszukiwanie.wyszukiwanie_a_star(wozek.obecnyStan, docelowy_stan, grid_points)
|
||||||
|
sciezka = wyszukiwanie.znajdz_sciezke(wezel)
|
||||||
|
wozek.przemiesc_wozek_po_sciezce(sciezka)
|
||||||
|
|
||||||
docelowy_stan = wyszukiwanie.Stan(reg.numerWiersza * 70, reg.numerKolumny * 70, 1)
|
if wozek.ln != 0: # drops letter
|
||||||
wezel = wyszukiwanie.wyszukiwanie_a_star(wozek.obecnyStan, docelowy_stan, grid_points)
|
wozek.drops_letter(przenoszony_item)
|
||||||
sciezka = wyszukiwanie.znajdz_sciezke(wezel)
|
wozek.dynamic_wozek_picture()
|
||||||
wozek.przemiesc_wozek_po_sciezce(sciezka)
|
|
||||||
|
|
||||||
if wozek.ln != 0: # drops package
|
|
||||||
wozek.drops_package(przenoszona_paczka, reg, predictions)
|
|
||||||
wozek.dynamic_wozek_picture()
|
|
||||||
|
|
||||||
if event.type == pygame.MOUSEBUTTONDOWN:
|
if event.type == pygame.MOUSEBUTTONDOWN:
|
||||||
# lewy przycisk myszy
|
# lewy przycisk myszy
|
||||||
|
30
wozek.py
30
wozek.py
@ -1,9 +1,11 @@
|
|||||||
import ekran
|
import ekran
|
||||||
import pygame,math
|
import pygame,math
|
||||||
# from packageList import listOfPackages
|
# from packageList import listOfPackages
|
||||||
from ekran import lista_paczek
|
from ekran import lista_itemow
|
||||||
|
from letter import Letter
|
||||||
|
import plansza
|
||||||
|
|
||||||
listOfPackages = lista_paczek
|
listOfPackages = lista_itemow
|
||||||
|
|
||||||
class Wozek(pygame.sprite.Sprite):
|
class Wozek(pygame.sprite.Sprite):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -118,12 +120,18 @@ class Wozek(pygame.sprite.Sprite):
|
|||||||
else:
|
else:
|
||||||
self.image = pygame.transform.rotate(self.image, 90)
|
self.image = pygame.transform.rotate(self.image, 90)
|
||||||
|
|
||||||
def picks_up_package(self):
|
def picks_up_item(self):
|
||||||
paczka_pop = ekran.lista_paczek.pop()
|
item_pop = ekran.lista_itemow.pop()
|
||||||
ekran.lista_paczek_na_regalach.append(paczka_pop)
|
if isinstance(item_pop,Letter):
|
||||||
paczka_pop.is_in_move = True
|
ekran.lista_listow_w_skrzynce.append(item_pop)
|
||||||
self.storage.append(paczka_pop)
|
item_pop.is_in_move = True
|
||||||
self.ln = self.ln + 1
|
self.storage.append(item_pop)
|
||||||
|
self.ln = self.ln + 1
|
||||||
|
else:
|
||||||
|
ekran.lista_paczek_na_regalach.append(item_pop)
|
||||||
|
item_pop.is_in_move = True
|
||||||
|
self.storage.append(item_pop)
|
||||||
|
self.ln = self.ln + 1
|
||||||
|
|
||||||
def drops_package(self, paczka, reg, predictions):
|
def drops_package(self, paczka, reg, predictions):
|
||||||
paczka.update_position(reg.numerWiersza*70, reg.numerKolumny*70)
|
paczka.update_position(reg.numerWiersza*70, reg.numerKolumny*70)
|
||||||
@ -132,3 +140,9 @@ class Wozek(pygame.sprite.Sprite):
|
|||||||
self.ln = self.ln - 1
|
self.ln = self.ln - 1
|
||||||
reg.put_package_on_the_regal(paczka, predictions)
|
reg.put_package_on_the_regal(paczka, predictions)
|
||||||
|
|
||||||
|
def drops_letter(self, letter):
|
||||||
|
letter.update_position(plansza.c_pix, plansza.d_pix)
|
||||||
|
letter.is_in_move = False
|
||||||
|
self.storage.pop()
|
||||||
|
self.ln = self.ln - 1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user