import sys import pygame from paczka import Paczka from wozek import Wozek import wyszukiwanie import ekran from grid import GridCellType, SearchGrid from sklearn.tree import DecisionTreeClassifier import pandas as pd import drzewo_decyzyjne from plansza import a_pix, b_pix pygame.init() def main(): wozek = Wozek() 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) ekran.dodaj_paczki_na_rampe(p1, p2) grid_points = SearchGrid() drzewo = drzewo_decyzyjne.make_tree() while True: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit(0) if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE: sys.exit(0) if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: ## wozek jedzie po paczke wiersz = ekran.sprawdz_ktory_wiersz(a_pix) kolumna = ekran.sprawdz_ktora_kolumna(b_pix) docelowy_stan = wyszukiwanie.Stan(wiersz * 70, kolumna * 70, 1) #wezel = wyszukiwanie.wyszukiwanie_bfs(wozek.obecnyStan, docelowy_stan, grid_points) wezel = wyszukiwanie.wyszukiwanie_a_star(wozek.obecnyStan, docelowy_stan, grid_points) sciezka = wyszukiwanie.znajdz_sciezke(wezel) wozek.przemiesc_wozek_po_sciezce(sciezka) if grid_points.grid[(wiersz, kolumna)] is GridCellType.PLACE: #picks up package if wozek.ln == 0: wozek.picks_up_package() wozek.dynamic_wozek_picture() ## wozek jedzie odlozyc paczke na regal przenoszona_paczka = wozek.storage[-1] array, reg = przenoszona_paczka.tablica_do_drzewa(przenoszona_paczka.kategoria) predictions = drzewo.predict([array]) if predictions == 0: 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() if event.type == pygame.MOUSEBUTTONDOWN: # lewy przycisk myszy if event.button == 1: x = pygame.mouse.get_pos()[0] y = pygame.mouse.get_pos()[1] wiersz = ekran.sprawdz_ktory_wiersz(x) kolumna = ekran.sprawdz_ktora_kolumna(y) docelowy_stan = wyszukiwanie.Stan(wiersz * 70, kolumna * 70, 1) #wezel = wyszukiwanie.wyszukiwanie_bfs(wozek.obecnyStan, docelowy_stan, grid_points) wezel = wyszukiwanie.wyszukiwanie_a_star(wozek.obecnyStan, docelowy_stan, grid_points) sciezka = wyszukiwanie.znajdz_sciezke(wezel) wozek.przemiesc_wozek_po_sciezce(sciezka) # if grid_points.grid[(wiersz, kolumna)] is GridCellType.PLACE: #picks up package # if wozek.ln == 0: # wozek.load_package() # wozek.dynamic_wozek_picture # else: # if wozek.ln != 0: # drops package # wozek.drop_package() # wozek.dynamic_wozek_picture() if event.type == pygame.KEYDOWN: if event.key == pygame.K_DOWN: wozek.y_change = 1 if event.key == pygame.K_UP: wozek.y_change = -1 if event.key == pygame.K_RIGHT: wozek.x_change = 1 if event.key == pygame.K_LEFT: wozek.x_change = -1 if event.type == pygame.KEYUP: if event.key == pygame.K_DOWN or event.key == pygame.K_UP: wozek.y_change = 0 if event.key == pygame.K_RIGHT or event.key == pygame.K_LEFT: wozek.x_change = 0 # if event.type == pygame.KEYDOWN: # if event.key == pygame.K_SPACE: # if wozek.ln == 0: # wozek.load_package() # wozek.dynamic_wozek_picture() # else: # wozek.drop_package() # wozek.dynamic_wozek_picture() wozek.obecnyStan.x += wozek.x_change wozek.obecnyStan.y += wozek.y_change if wozek.obecnyStan.x <= 0: wozek.obecnyStan.x = 0 elif wozek.obecnyStan.x >= ekran.EKRAN_SZEROKOSC-70: wozek.obecnyStan.x = ekran.EKRAN_SZEROKOSC-70 if wozek.obecnyStan.y <= 0: wozek.obecnyStan.y = 0 elif wozek.obecnyStan.y >= ekran.EKRAN_WYSOKOSC-70: wozek.obecnyStan.y = ekran.EKRAN_WYSOKOSC-70 ekran.odswiez_ekran(wozek) if __name__ == "__main__": main()