Compare commits
No commits in common. "deb2be37452eb336200b115ce6bffbe17b543dad" and "d8d4bde5d9250a5361939352b32fd7cb86c61306" have entirely different histories.
deb2be3745
...
d8d4bde5d9
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
4
ekran.py
4
ekran.py
@ -10,7 +10,6 @@ EKRAN_SZEROKOSC = 980
|
||||
EKRAN_WYSOKOSC = 980
|
||||
screen = pygame.display.set_mode((EKRAN_SZEROKOSC, EKRAN_WYSOKOSC))
|
||||
miejsce = pygame.image.load('images/miejsce_paczek.png')
|
||||
miejsce = pygame.transform.scale(miejsce, (140, 140))
|
||||
pygame.display.set_caption("Inteligentny wozek")
|
||||
icon = pygame.image.load('images/icon.png')
|
||||
pygame.display.set_icon(icon)
|
||||
@ -50,8 +49,7 @@ def narysuj_siatke():
|
||||
|
||||
def odswiez_ekran(wozek):
|
||||
screen.fill((51, 51, 51)) # removes object trail
|
||||
#screen.blit(miejsce, (430, 400))
|
||||
screen.blit(miejsce,(420, 350))
|
||||
screen.blit(miejsce, (430, 400))
|
||||
narysuj_siatke()
|
||||
narysuj_paczki(wozek)
|
||||
narysuj_regaly()
|
||||
|
25
grid.py
25
grid.py
@ -1,25 +0,0 @@
|
||||
from enum import Enum
|
||||
|
||||
from typing import Tuple, Dict
|
||||
|
||||
class GridCellType(Enum):
|
||||
FREE = 0
|
||||
RACK = 1
|
||||
PLACE = 2
|
||||
# dodać oznaczenie na miejsce dla paczek
|
||||
|
||||
class SearchGrid:
|
||||
grid: Dict[Tuple[int, int], GridCellType] = {}
|
||||
|
||||
def __init__(self) -> None:
|
||||
self._init_grid()
|
||||
|
||||
def _init_grid(self) -> None:
|
||||
for i in range (0,14):
|
||||
for j in range(0,14):
|
||||
self.grid[(i, j)] = GridCellType.FREE
|
||||
for r, c in [(2,2), (2,3), (3,2), (3,3), (10,2), (10,3), (11,2), (11,3),
|
||||
(2,8), (2,9), (3,8), (3,9), (10,8), (10,9), (11,8), (11,9),]:
|
||||
self.grid[(r,c)] = GridCellType.RACK
|
||||
for m, n in [(6,5), (6,6), (7,5), (7,6)]:
|
||||
self.grid[(m,n)] = GridCellType.PLACE
|
5
main.py
5
main.py
@ -3,7 +3,7 @@ import pygame
|
||||
from wozek import Wozek
|
||||
import wyszukiwanie
|
||||
import ekran
|
||||
from grid import SearchGrid
|
||||
|
||||
pygame.init()
|
||||
|
||||
|
||||
@ -19,13 +19,12 @@ def main():
|
||||
if event.type == pygame.MOUSEBUTTONDOWN:
|
||||
# lewy przycisk myszy
|
||||
if event.button == 1:
|
||||
grid_points = SearchGrid()
|
||||
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, 0)
|
||||
wezel = wyszukiwanie.wyszukiwanie_bfs(wozek.obecnyStan, docelowy_stan, grid_points)
|
||||
wezel = wyszukiwanie.wyszukiwanie_bfs(wozek.obecnyStan, docelowy_stan)
|
||||
sciezka = wyszukiwanie.znajdz_sciezke(wezel)
|
||||
wozek.przemiesc_wozek_po_sciezce(sciezka)
|
||||
|
||||
|
@ -1,4 +1,13 @@
|
||||
from grid import GridCellType
|
||||
class SearchSpace:
|
||||
def __init__(self):
|
||||
self.grid = [['1'] * 10 for _ in range(10)] # create a 10x10 grid of cells
|
||||
for r, c in [(2, 2), (2, 3), (3, 2), (3, 3), (8, 2), (8, 3), (9, 2), (9, 3),
|
||||
(2, 8), (2, 9), (3, 8), (3, 9), (8, 8), (8, 9), (9, 8), (9, 9)]:
|
||||
self.grid[r][c] = 'X' # set the cells with a shelf to not passable
|
||||
|
||||
def is_passable(self, x, y):
|
||||
return 0 <= x < 10 and 0 <= y < 10 and self.grid[y][x] != 'X'
|
||||
|
||||
|
||||
class Stan:
|
||||
def __init__(self, x, y, kierunek):
|
||||
@ -12,7 +21,7 @@ class Wezel:
|
||||
self.stan = stan
|
||||
self.rodzic = rodzic
|
||||
|
||||
def nastepnik(wezel, licznik, search_grid):
|
||||
def nastepnik(wezel, licznik):
|
||||
# gora -> prawo -> dol -> lewo | obrot w prawo
|
||||
# gora -> lewo -> dol -> prawo | obrot w lewo
|
||||
# 0 gora 1 prawo 2 dol 3 lewo
|
||||
@ -35,14 +44,11 @@ def nastepnik(wezel, licznik, search_grid):
|
||||
|
||||
# sprawdzenie czy nie wyjdzie poza plansze
|
||||
if 0 <= x <= 910 and 0 <= y <= 910:
|
||||
x1 = x / 70
|
||||
y1 = y / 70
|
||||
if search_grid.grid[(x1,y1)] is GridCellType.FREE:
|
||||
wezly.append(ruch_w_przod)
|
||||
wezly.append(ruch_w_przod)
|
||||
|
||||
return wezly
|
||||
|
||||
def wyszukiwanie_bfs(stan_poczatkowy, stan_docelowy, search_grid):
|
||||
def wyszukiwanie_bfs(stan_poczatkowy, stan_docelowy):
|
||||
pierwszy_wezel = Wezel(stan_poczatkowy, 0)
|
||||
fringe = [pierwszy_wezel]
|
||||
odwiedzone = [pierwszy_wezel]
|
||||
@ -55,7 +61,7 @@ def wyszukiwanie_bfs(stan_poczatkowy, stan_docelowy, search_grid):
|
||||
mapa[licznik] = wezel
|
||||
if stan_docelowy.x == wezel.stan.x and stan_docelowy.y == wezel.stan.y:
|
||||
return wezel
|
||||
lista1 = nastepnik(wezel, licznik, search_grid)
|
||||
lista1 = nastepnik(wezel, licznik)
|
||||
for obecny_wezel in lista1:
|
||||
flag_juz_odwiedzony = 0
|
||||
for odwiedzony_wezel in odwiedzone:
|
||||
|
Loading…
Reference in New Issue
Block a user