forked from s474139/Inteligentny_Wozek
test
This commit is contained in:
commit
d8d4bde5d9
BIN
__pycache__/etykieta.cpython-311.pyc
Normal file
BIN
__pycache__/etykieta.cpython-311.pyc
Normal file
Binary file not shown.
BIN
__pycache__/main.cpython-311.pyc
Normal file
BIN
__pycache__/main.cpython-311.pyc
Normal file
Binary file not shown.
BIN
__pycache__/paczka.cpython-311.pyc
Normal file
BIN
__pycache__/paczka.cpython-311.pyc
Normal file
Binary file not shown.
BIN
__pycache__/regal.cpython-311.pyc
Normal file
BIN
__pycache__/regal.cpython-311.pyc
Normal file
Binary file not shown.
BIN
__pycache__/wozek.cpython-311.pyc
Normal file
BIN
__pycache__/wozek.cpython-311.pyc
Normal file
Binary file not shown.
BIN
__pycache__/wyszukiwanie.cpython-311.pyc
Normal file
BIN
__pycache__/wyszukiwanie.cpython-311.pyc
Normal file
Binary file not shown.
BIN
__pycache__/wyszukiwanie1.cpython-311.pyc
Normal file
BIN
__pycache__/wyszukiwanie1.cpython-311.pyc
Normal file
Binary file not shown.
79
ekran.py
Normal file
79
ekran.py
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
import pygame
|
||||||
|
|
||||||
|
import packageList
|
||||||
|
import regal
|
||||||
|
import wozek
|
||||||
|
from packageList import *
|
||||||
|
from paczka import Paczka
|
||||||
|
|
||||||
|
EKRAN_SZEROKOSC = 980
|
||||||
|
EKRAN_WYSOKOSC = 980
|
||||||
|
screen = pygame.display.set_mode((EKRAN_SZEROKOSC, EKRAN_WYSOKOSC))
|
||||||
|
miejsce = pygame.image.load('images/miejsce_paczek.png')
|
||||||
|
pygame.display.set_caption("Inteligentny wozek")
|
||||||
|
icon = pygame.image.load('images/icon.png')
|
||||||
|
pygame.display.set_icon(icon)
|
||||||
|
|
||||||
|
lista_paczek = packageList.zainicjuj_liste_paczek()
|
||||||
|
|
||||||
|
def narysuj_regaly():
|
||||||
|
regal.Regal(1, 1, 2, 2)
|
||||||
|
regal.Regal(2, 1, 2, 3)
|
||||||
|
regal.Regal(3, 1, 3, 2)
|
||||||
|
regal.Regal(4, 1, 3, 3)
|
||||||
|
|
||||||
|
regal.Regal(5, 1, 10, 2)
|
||||||
|
regal.Regal(6, 1, 10, 3)
|
||||||
|
regal.Regal(7, 1, 11, 2)
|
||||||
|
regal.Regal(8, 1, 11, 3)
|
||||||
|
|
||||||
|
regal.Regal(9, 1, 2, 8)
|
||||||
|
regal.Regal(10, 1, 2, 9)
|
||||||
|
regal.Regal(11, 1, 3, 8)
|
||||||
|
regal.Regal(12, 1, 3, 9)
|
||||||
|
|
||||||
|
regal.Regal(13, 1, 10, 8)
|
||||||
|
regal.Regal(14, 1, 10, 9)
|
||||||
|
regal.Regal(15, 1, 11, 8)
|
||||||
|
regal.Regal(16, 1, 11, 9)
|
||||||
|
|
||||||
|
|
||||||
|
def narysuj_siatke():
|
||||||
|
blockSize = 70 # Set the size of the grid block
|
||||||
|
WHITE = (200, 200, 200)
|
||||||
|
for x in range(0, EKRAN_SZEROKOSC, blockSize):
|
||||||
|
for y in range(0, EKRAN_WYSOKOSC, blockSize):
|
||||||
|
rect = pygame.Rect(x, y, blockSize, blockSize)
|
||||||
|
pygame.draw.rect(screen, WHITE, rect, 1)
|
||||||
|
|
||||||
|
|
||||||
|
def odswiez_ekran(wozek):
|
||||||
|
screen.fill((51, 51, 51)) # removes object trail
|
||||||
|
screen.blit(miejsce, (430, 400))
|
||||||
|
narysuj_siatke()
|
||||||
|
narysuj_paczki(wozek)
|
||||||
|
narysuj_regaly()
|
||||||
|
wozek.draw()
|
||||||
|
pygame.display.flip()
|
||||||
|
|
||||||
|
|
||||||
|
def sprawdz_ktory_wiersz(x):
|
||||||
|
nr_wiersza = 0
|
||||||
|
for i in range(70, EKRAN_WYSOKOSC + 70, 70):
|
||||||
|
if x < i:
|
||||||
|
return nr_wiersza
|
||||||
|
nr_wiersza = nr_wiersza + 1
|
||||||
|
|
||||||
|
|
||||||
|
def sprawdz_ktora_kolumna(y):
|
||||||
|
nr_kolumny = 0
|
||||||
|
for i in range(70, EKRAN_SZEROKOSC + 70, 70):
|
||||||
|
if y < i:
|
||||||
|
return nr_kolumny
|
||||||
|
nr_kolumny = nr_kolumny + 1
|
||||||
|
|
||||||
|
|
||||||
|
def narysuj_paczki(wozek):
|
||||||
|
if wozek.ln == 0:
|
||||||
|
for paczka in lista_paczek.list:
|
||||||
|
paczka.narysuj(430, 400, screen)
|
83
main.py
83
main.py
@ -1,28 +1,14 @@
|
|||||||
import sys
|
import sys
|
||||||
import pygame
|
import pygame
|
||||||
import regal
|
|
||||||
from paczka import Paczka
|
|
||||||
from wozek import Wozek
|
from wozek import Wozek
|
||||||
from packageList import listOfPackages
|
import wyszukiwanie
|
||||||
|
import ekran
|
||||||
|
|
||||||
pygame.init()
|
pygame.init()
|
||||||
screen = pygame.display.set_mode((980, 980))
|
|
||||||
miejsce = pygame.image.load('images/miejsce_paczek.png')
|
|
||||||
|
|
||||||
pygame.display.set_caption("Inteligentny wozek")
|
|
||||||
icon = pygame.image.load('images/icon.png')
|
|
||||||
pygame.display.set_icon(icon)
|
|
||||||
|
|
||||||
def draw(self):
|
|
||||||
screen.blit(self.image, (self.x, self.y))
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
wozek = Wozek()
|
wozek = Wozek()
|
||||||
packageList = listOfPackages()
|
|
||||||
demo_paczka = Paczka('duzy', 10, any, False, any, any, any, any, any)
|
|
||||||
packageList.add(demo_paczka)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
for event in pygame.event.get():
|
for event in pygame.event.get():
|
||||||
@ -30,6 +16,17 @@ def main():
|
|||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
|
if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
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, 0)
|
||||||
|
wezel = wyszukiwanie.wyszukiwanie_bfs(wozek.obecnyStan, docelowy_stan)
|
||||||
|
sciezka = wyszukiwanie.znajdz_sciezke(wezel)
|
||||||
|
wozek.przemiesc_wozek_po_sciezce(sciezka)
|
||||||
|
|
||||||
if event.type == pygame.KEYDOWN:
|
if event.type == pygame.KEYDOWN:
|
||||||
if event.key == pygame.K_DOWN:
|
if event.key == pygame.K_DOWN:
|
||||||
@ -56,51 +53,19 @@ def main():
|
|||||||
wozek.drop_package()
|
wozek.drop_package()
|
||||||
wozek.dynamic_wozek_picture()
|
wozek.dynamic_wozek_picture()
|
||||||
|
|
||||||
wozek.x += wozek.x_change
|
wozek.obecnyStan.x += wozek.x_change
|
||||||
wozek.y += wozek.y_change
|
wozek.obecnyStan.y += wozek.y_change
|
||||||
|
|
||||||
if wozek.x <= 0:
|
if wozek.obecnyStan.x <= 0:
|
||||||
wozek.x = 0
|
wozek.obecnyStan.x = 0
|
||||||
elif wozek.x >= 916:
|
elif wozek.obecnyStan.x >= 916:
|
||||||
wozek.x = 916
|
wozek.obecnyStan.x = 916
|
||||||
if wozek.y <= 0:
|
if wozek.obecnyStan.y <= 0:
|
||||||
wozek.y = 0
|
wozek.obecnyStan.y = 0
|
||||||
elif wozek.x >= 916:
|
elif wozek.obecnyStan.x >= 916:
|
||||||
wozek.x = 916
|
wozek.obecnyStan.x = 916
|
||||||
|
|
||||||
# Drawing
|
ekran.odswiez_ekran(wozek)
|
||||||
screen.fill((51,51,51)) # removes object trail
|
|
||||||
screen.blit(miejsce, (430, 400))
|
|
||||||
|
|
||||||
# idRegału, Długość regału podana w kratkach, Współrzędne od których ma być tworzony regał (wiersz,kolumna) - poziomo
|
|
||||||
# Współrzędne od (1,1) do (10,10)
|
|
||||||
regal.Regal(1, 1, 2, 2)
|
|
||||||
regal.Regal(2, 1, 2, 3)
|
|
||||||
regal.Regal(3, 1, 3, 2)
|
|
||||||
regal.Regal(4, 1, 3, 3)
|
|
||||||
|
|
||||||
regal.Regal(5, 1, 8, 2)
|
|
||||||
regal.Regal(6, 1, 8, 3)
|
|
||||||
regal.Regal(7, 1, 9, 2)
|
|
||||||
regal.Regal(8, 1, 9, 3)
|
|
||||||
|
|
||||||
regal.Regal(9, 1, 2, 8)
|
|
||||||
regal.Regal(10, 1, 2, 9)
|
|
||||||
regal.Regal(11, 1, 3, 8)
|
|
||||||
regal.Regal(12, 1, 3, 9)
|
|
||||||
|
|
||||||
regal.Regal(13, 1, 8, 8)
|
|
||||||
regal.Regal(14, 1, 8, 9)
|
|
||||||
regal.Regal(15, 1, 9, 8)
|
|
||||||
regal.Regal(16, 1, 9, 9)
|
|
||||||
|
|
||||||
draw(wozek)
|
|
||||||
if wozek.ln == 0:
|
|
||||||
for x in packageList.list:
|
|
||||||
draw(x)
|
|
||||||
#demo_paczka.narysuj(430,400,screen)
|
|
||||||
|
|
||||||
pygame.display.flip() # updating frames
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
@ -1,8 +1,16 @@
|
|||||||
|
|
||||||
class listOfPackages:
|
class listOfPackages:
|
||||||
list = []
|
list = []
|
||||||
|
|
||||||
def add(self, item):
|
def add(self, item):
|
||||||
self.list.append(item)
|
self.list.append(item)
|
||||||
|
|
||||||
def remove(self):
|
def remove(self):
|
||||||
self.list.pop()
|
self.list.pop()
|
||||||
|
|
||||||
|
|
||||||
|
def zainicjuj_liste_paczek():
|
||||||
|
from paczka import Paczka
|
||||||
|
packageList = listOfPackages()
|
||||||
|
demo_paczka = Paczka('duzy', 10, any, False, any, any, any, any, any)
|
||||||
|
packageList.add(demo_paczka)
|
||||||
|
return packageList
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
from etykieta import Etykieta
|
from etykieta import Etykieta
|
||||||
from main import pygame
|
import pygame
|
||||||
|
|
||||||
|
|
||||||
class Paczka:
|
class Paczka:
|
||||||
|
10
regal.py
10
regal.py
@ -1,12 +1,12 @@
|
|||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
from main import screen
|
|
||||||
|
|
||||||
def obliczPixeleNaPodstawieKratek(wymiar): #Przeliczanie współrzędnych podanych w kratkach na pixele
|
def obliczPixeleNaPodstawieKratek(wymiar): #Przeliczanie współrzędnych podanych w kratkach na pixele
|
||||||
i = 1
|
i = 1
|
||||||
pixele = 100
|
# pixele = 100
|
||||||
|
pixele = 73
|
||||||
while (i < wymiar):
|
while (i < wymiar):
|
||||||
pixele = pixele + 80
|
pixele = pixele + 70
|
||||||
i = i + 1
|
i = i + 1
|
||||||
return pixele
|
return pixele
|
||||||
|
|
||||||
@ -20,6 +20,7 @@ def obliczPixeleDlugosciRegalu(self): #Przeliczanie dlugości regału podanego
|
|||||||
|
|
||||||
class Regal:
|
class Regal:
|
||||||
def __init__(self, numerRegalu, dlugoscRegaluWKratkach, numerWiersza, numerKolumny):
|
def __init__(self, numerRegalu, dlugoscRegaluWKratkach, numerWiersza, numerKolumny):
|
||||||
|
from ekran import screen
|
||||||
self.numerRegalu = numerRegalu
|
self.numerRegalu = numerRegalu
|
||||||
self.wysokoscRegalu = 64
|
self.wysokoscRegalu = 64
|
||||||
self.dlugoscRegaluWKratkach = dlugoscRegaluWKratkach
|
self.dlugoscRegaluWKratkach = dlugoscRegaluWKratkach
|
||||||
@ -29,6 +30,9 @@ class Regal:
|
|||||||
self.kolumna = obliczPixeleNaPodstawieKratek(numerKolumny)
|
self.kolumna = obliczPixeleNaPodstawieKratek(numerKolumny)
|
||||||
self.dlugosc = obliczPixeleDlugosciRegalu(self)
|
self.dlugosc = obliczPixeleDlugosciRegalu(self)
|
||||||
|
|
||||||
|
# from main import screen
|
||||||
|
# from ekran import screen
|
||||||
|
|
||||||
if(self.numerRegalu >= 0 and self.numerRegalu <= 4):
|
if(self.numerRegalu >= 0 and self.numerRegalu <= 4):
|
||||||
reg = pygame.Surface([self.dlugosc, self.wysokoscRegalu])
|
reg = pygame.Surface([self.dlugosc, self.wysokoscRegalu])
|
||||||
reg = pygame.image.load("images/regal.png")
|
reg = pygame.image.load("images/regal.png")
|
||||||
|
48
wozek.py
48
wozek.py
@ -1,10 +1,13 @@
|
|||||||
|
import ekran
|
||||||
import pygame,math
|
import pygame,math
|
||||||
from packageList import listOfPackages
|
from packageList import listOfPackages
|
||||||
|
|
||||||
|
|
||||||
class Wozek():
|
class Wozek():
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.x = 55
|
self.obecnyStan = None
|
||||||
self.y = 55
|
# self.x = 55
|
||||||
|
# self.y = 55
|
||||||
self.x_change = 0
|
self.x_change = 0
|
||||||
self.y_change = 0
|
self.y_change = 0
|
||||||
self.height = 64
|
self.height = 64
|
||||||
@ -12,7 +15,10 @@ class Wozek():
|
|||||||
self.image = pygame.image.load("images/pusty_wozek.png")
|
self.image = pygame.image.load("images/pusty_wozek.png")
|
||||||
# Credit: Forklift icons created by Smashicons - Flaticon
|
# Credit: Forklift icons created by Smashicons - Flaticon
|
||||||
# https://www.flaticon.com/free-icons/forklift
|
# https://www.flaticon.com/free-icons/forklift
|
||||||
|
self.__zainicjuj_stan_poczatkowy()
|
||||||
|
|
||||||
|
def draw(self):
|
||||||
|
ekran.screen.blit(self.image, (self.obecnyStan.x, self.obecnyStan.y))
|
||||||
|
|
||||||
#storage = ["none"] * 10
|
#storage = ["none"] * 10
|
||||||
storage = []
|
storage = []
|
||||||
@ -43,9 +49,10 @@ class Wozek():
|
|||||||
elif (self.ln == 10):
|
elif (self.ln == 10):
|
||||||
self.image = pygame.image.load("images/pelny_wozek_full_3_crates.png")
|
self.image = pygame.image.load("images/pelny_wozek_full_3_crates.png")
|
||||||
|
|
||||||
|
|
||||||
def load_package(self):
|
def load_package(self):
|
||||||
for package in listOfPackages.list:
|
for package in listOfPackages.list:
|
||||||
dist = math.sqrt((self.x - package.x)**2 + (self.y - package.y)**2)
|
dist = math.sqrt((self.obecnyStan.x - package.x)**2 + (self.obecnyStan.y - package.y)**2)
|
||||||
if dist <= 50:
|
if dist <= 50:
|
||||||
self.add_element(package)
|
self.add_element(package)
|
||||||
listOfPackages.list.pop()
|
listOfPackages.list.pop()
|
||||||
@ -53,5 +60,36 @@ class Wozek():
|
|||||||
package = self.remove_element()
|
package = self.remove_element()
|
||||||
if package is not None:
|
if package is not None:
|
||||||
listOfPackages.list.append(package)
|
listOfPackages.list.append(package)
|
||||||
package.x = self.x+50
|
package.x = self.obecnyStan.x+50
|
||||||
package.y = self.y
|
package.y = self.obecnyStan.y
|
||||||
|
|
||||||
|
def __zainicjuj_stan_poczatkowy(self):
|
||||||
|
from wyszukiwanie import Stan
|
||||||
|
self.obecnyStan = Stan(70, 70, 1)
|
||||||
|
|
||||||
|
def przemiesc_wozek_po_sciezce(self, sciezka):
|
||||||
|
kierunek_poprzedni = self.obecnyStan.kierunek
|
||||||
|
for wezel in sciezka:
|
||||||
|
self.obecnyStan = wezel.stan
|
||||||
|
kierunek_obecny = self.obecnyStan.kierunek
|
||||||
|
self.ustaw_wozek_w_kierunku(kierunek_obecny, kierunek_poprzedni)
|
||||||
|
kierunek_poprzedni = kierunek_obecny
|
||||||
|
ekran.odswiez_ekran(self)
|
||||||
|
pygame.time.wait(500)
|
||||||
|
|
||||||
|
def ustaw_wozek_w_kierunku(self, kierunek_obecny, kierunek_poprzedni):
|
||||||
|
if kierunek_poprzedni < kierunek_obecny:
|
||||||
|
# obrot w lewo
|
||||||
|
if kierunek_poprzedni == 0 and kierunek_obecny == 3:
|
||||||
|
self.image = pygame.transform.rotate(self.image, 90)
|
||||||
|
# obrot w prawo
|
||||||
|
else:
|
||||||
|
self.image = pygame.transform.rotate(self.image, -90)
|
||||||
|
elif kierunek_poprzedni > kierunek_obecny:
|
||||||
|
# obrot w prawo
|
||||||
|
if kierunek_poprzedni == 3 and kierunek_obecny == 0:
|
||||||
|
self.image = pygame.transform.rotate(self.image, -90)
|
||||||
|
# obrot w lewo
|
||||||
|
else:
|
||||||
|
self.image = pygame.transform.rotate(self.image, 90)
|
||||||
|
|
||||||
|
87
wyszukiwanie.py
Normal file
87
wyszukiwanie.py
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
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):
|
||||||
|
self.x = x
|
||||||
|
self.y = y
|
||||||
|
self.kierunek = kierunek
|
||||||
|
|
||||||
|
|
||||||
|
class Wezel:
|
||||||
|
def __init__(self, stan, rodzic):
|
||||||
|
self.stan = stan
|
||||||
|
self.rodzic = rodzic
|
||||||
|
|
||||||
|
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
|
||||||
|
x = wezel.stan.x
|
||||||
|
y = wezel.stan.y
|
||||||
|
obrot_w_prawo = Wezel(Stan(x, y, (wezel.stan.kierunek + 1) % 4), licznik)
|
||||||
|
obrot_w_lewo = Wezel(Stan(x, y, 3 if wezel.stan.kierunek == 0 else wezel.stan.kierunek - 1), licznik)
|
||||||
|
|
||||||
|
if wezel.stan.kierunek == 0:
|
||||||
|
y -= 70
|
||||||
|
elif wezel.stan.kierunek == 1:
|
||||||
|
x += 70
|
||||||
|
elif wezel.stan.kierunek == 2:
|
||||||
|
y += 70
|
||||||
|
elif wezel.stan.kierunek == 3:
|
||||||
|
x -= 70
|
||||||
|
|
||||||
|
wezly = [obrot_w_prawo, obrot_w_lewo]
|
||||||
|
ruch_w_przod = Wezel(Stan(x, y, wezel.stan.kierunek), licznik)
|
||||||
|
|
||||||
|
# sprawdzenie czy nie wyjdzie poza plansze
|
||||||
|
if 0 <= x <= 910 and 0 <= y <= 910:
|
||||||
|
wezly.append(ruch_w_przod)
|
||||||
|
|
||||||
|
return wezly
|
||||||
|
|
||||||
|
def wyszukiwanie_bfs(stan_poczatkowy, stan_docelowy):
|
||||||
|
pierwszy_wezel = Wezel(stan_poczatkowy, 0)
|
||||||
|
fringe = [pierwszy_wezel]
|
||||||
|
odwiedzone = [pierwszy_wezel]
|
||||||
|
licznik = 0
|
||||||
|
global mapa
|
||||||
|
mapa = dict()
|
||||||
|
while fringe:
|
||||||
|
wezel = fringe.pop(0)
|
||||||
|
licznik = licznik + 1
|
||||||
|
mapa[licznik] = wezel
|
||||||
|
if stan_docelowy.x == wezel.stan.x and stan_docelowy.y == wezel.stan.y:
|
||||||
|
return wezel
|
||||||
|
lista1 = nastepnik(wezel, licznik)
|
||||||
|
for obecny_wezel in lista1:
|
||||||
|
flag_juz_odwiedzony = 0
|
||||||
|
for odwiedzony_wezel in odwiedzone:
|
||||||
|
# sprawdzenie czy odwiedzilismy juz ten stan
|
||||||
|
if odwiedzony_wezel.stan.x == obecny_wezel.stan.x and odwiedzony_wezel.stan.y == obecny_wezel.stan.y\
|
||||||
|
and odwiedzony_wezel.stan.kierunek == obecny_wezel.stan.kierunek:
|
||||||
|
flag_juz_odwiedzony = 1
|
||||||
|
break
|
||||||
|
if flag_juz_odwiedzony == 1:
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
fringe.append(obecny_wezel)
|
||||||
|
odwiedzone.append(obecny_wezel)
|
||||||
|
return pierwszy_wezel
|
||||||
|
def znajdz_sciezke(wezel):
|
||||||
|
sciezka = [wezel]
|
||||||
|
index = wezel.rodzic
|
||||||
|
while index != 0:
|
||||||
|
wezel = mapa[index]
|
||||||
|
sciezka.append(wezel)
|
||||||
|
index = wezel.rodzic
|
||||||
|
sc = list(reversed(sciezka))
|
||||||
|
return sc
|
Loading…
Reference in New Issue
Block a user