Szafki z półkami i miejscami na półkach
This commit is contained in:
parent
d3387c820c
commit
321ac8490e
21
main.py
21
main.py
@ -17,25 +17,26 @@ Pomieszczenie=Pomieszczenie(0,0)
|
|||||||
def dodaj_agenta():
|
def dodaj_agenta():
|
||||||
# pole_lewe_gorne = PoleKraty(Krata, random.randint(0, LICZBA_POL_W_PIONIE - BOK_AGENTA1_W_POLACH),
|
# pole_lewe_gorne = PoleKraty(Krata, random.randint(0, LICZBA_POL_W_PIONIE - BOK_AGENTA1_W_POLACH),
|
||||||
# random.randint(0, LICZBA_POL_W_POZIOMIE - BOK_AGENTA1_W_POLACH))
|
# random.randint(0, LICZBA_POL_W_POZIOMIE - BOK_AGENTA1_W_POLACH))
|
||||||
pole_lewe_gorne = PoleKraty(Krata, 1, 1)
|
pole_lewe_gorne = PoleKraty(Krata, LICZBA_POL_W_PIONIE-BOK_AGENTA1_W_POLACH, int(LICZBA_POL_W_POZIOMIE/2))
|
||||||
pom = 'traktor_ikona.png'
|
pom = 'traktor_ikona.png'
|
||||||
ikona = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', pom)),
|
ikona = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', pom)),
|
||||||
(BOK_AGENTA1, BOK_AGENTA1))
|
(BOK_AGENTA1, BOK_AGENTA1))
|
||||||
Agent(Krata, pole_lewe_gorne, ikona)
|
Agent(Krata, pole_lewe_gorne, ikona)
|
||||||
|
|
||||||
def dodaj_szafke(poczatek_wiersz1, poczatek_kolumna,ilosc_polek):
|
def dodaj_szafke(numerSzafki, iloscPolek, iloscMiejscNaPolce, dostepZeStrony, poczatek_kolumna, poczatek_wiersz1):
|
||||||
#bardzo prosta szafka, później do zmiany i uzupełnienia
|
|
||||||
#tworzymy jeden typ szafki składającej się z dużych półek(to znaczy jest jedna półka oraz kilka miejsc na niej), każda z półek zajmuje po 3 pola z każdego boku
|
|
||||||
wymiary_szafki = Wymiary(0, 0, 0)
|
wymiary_szafki = Wymiary(0, 0, 0)
|
||||||
szafka = Szafka(wymiary_szafki, ilosc_polek, poczatek_wiersz1, poczatek_kolumna, Krata)
|
szafka = Szafka(numerSzafki,wymiary_szafki, iloscPolek, iloscMiejscNaPolce, dostepZeStrony, poczatek_kolumna, poczatek_wiersz1, Krata)
|
||||||
Pomieszczenie.dodajSzafke(szafka)
|
Pomieszczenie.dodajSzafke(szafka)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
dodaj_szafke(0, 20, 8)
|
dodaj_szafke("A", 2, 10, "L", 0, 20) #przykładowe wartości dla szafek
|
||||||
dodaj_szafke(0, 40, 8)
|
dodaj_szafke("B", 2, 10, "P", 0, 24)
|
||||||
dodaj_szafke(0, 60, 8)
|
dodaj_szafke("C", 2, 10, "L", 0, 40)
|
||||||
dodaj_szafke(0, 80, 8)
|
dodaj_szafke("D", 2, 10, "P", 0, 44)
|
||||||
|
dodaj_szafke("E", 2, 10, "L", 0, 60)
|
||||||
|
dodaj_szafke("F", 2, 10, "P", 0, 64)
|
||||||
|
dodaj_szafke("G", 2, 10, "L", 0, 80)
|
||||||
|
dodaj_szafke("H", 2, 10, "P", 0, 84)
|
||||||
dodaj_agenta()
|
dodaj_agenta()
|
||||||
klatkaz = pygame.time.Clock()
|
klatkaz = pygame.time.Clock()
|
||||||
warunek_dzialania = True
|
warunek_dzialania = True
|
||||||
|
@ -44,15 +44,14 @@ class WarunkiPowietrza:
|
|||||||
self.wilgotnosc = wilgotnosc
|
self.wilgotnosc = wilgotnosc
|
||||||
|
|
||||||
|
|
||||||
class Polka:
|
class Miejsce: #wcześniej półka
|
||||||
def __init__(self, wymiary: Wymiary, udzwig, wysokoscOdPodlogi):
|
def __init__(self, numer, wymiary: Wymiary, udzwig, wysokoscOdPodlogi):
|
||||||
|
self.numer=numer
|
||||||
self.wymiary = wymiary
|
self.wymiary = wymiary
|
||||||
self.udzwig = udzwig
|
self.udzwig = udzwig
|
||||||
self.wysokoscOdPodlogi = wysokoscOdPodlogi
|
self.wysokoscOdPodlogi = wysokoscOdPodlogi
|
||||||
# zakładamy że aby położyć paczkę na półkę, agent musi stać dokładnie na polach kraty, określonych w atrybucie dostęp
|
#self.status = 'wolne'
|
||||||
# atrybut dostęp składa się z 9 pól ponieważ tyle miejsca na kracie zajmuje agent
|
self.dostep=[]
|
||||||
# utworzyłam szafki "wertykalnie" oraz zakładam że do półki można się dostać tylko z jednej strony (na razie tylko z lewej, ale można teżdodać, że tylko z prawej)
|
|
||||||
self.dostep = []
|
|
||||||
self.zajmowanePola = []
|
self.zajmowanePola = []
|
||||||
|
|
||||||
def dodajPole(self, pole: PoleKraty):
|
def dodajPole(self, pole: PoleKraty):
|
||||||
@ -63,33 +62,43 @@ class Polka:
|
|||||||
|
|
||||||
|
|
||||||
class Szafka:
|
class Szafka:
|
||||||
def __init__(self, wymiary: Wymiary, ilosc_polek, poczatek_kolumna, poczatek_wiersz1, Krata: Krata):
|
def __init__(self, numerSzafki, wymiary: Wymiary, iloscPolek, iloscMiejscNaPolce, dostepZeStrony, poczatek_kolumna, poczatek_wiersz1, Krata: Krata):
|
||||||
|
self.numerSzafki=numerSzafki
|
||||||
self.wymiary = wymiary
|
self.wymiary = wymiary
|
||||||
self.Polki = []
|
self.iloscPolek = iloscPolek
|
||||||
|
self.iloscMiejscNaPolce = iloscMiejscNaPolce
|
||||||
|
self.dostepZeStrony=dostepZeStrony
|
||||||
|
self.Miejsca = []
|
||||||
self.zajmowanePola = []
|
self.zajmowanePola = []
|
||||||
self.utworzPustaSzafke(ilosc_polek, poczatek_kolumna, poczatek_wiersz1, Krata)
|
self.utworzPustaSzafke(numerSzafki,iloscPolek, iloscMiejscNaPolce, dostepZeStrony, poczatek_kolumna, poczatek_wiersz1,Krata)
|
||||||
|
|
||||||
def dodajPolke(self, polka: Polka):
|
def dodajMiejsce(self, miejsce: Miejsce):
|
||||||
self.Polki.append(polka)
|
self.Miejsca.append(miejsce)
|
||||||
|
|
||||||
def dodajPole(self, pole: PoleKraty):
|
def dodajPole(self, pole: PoleKraty):
|
||||||
self.zajmowanePola.append(pole)
|
self.zajmowanePola.append(pole)
|
||||||
|
|
||||||
def utworzPustaSzafke(self, ilosc_polek, poczatek_wiersz1, poczatek_kolumna, Krata: Krata):
|
def utworzPustaSzafke(self, numerSzafki, iloscPolek, iloscMiejscNaPolce, dostępZeStrony, poczatek_wiersz1, poczatek_kolumna, Krata: Krata):
|
||||||
for i in range(ilosc_polek):
|
for i in range(iloscPolek):
|
||||||
wymiar_polki = Wymiary(0, 0, 0)
|
for j in range(iloscMiejscNaPolce):
|
||||||
polka = Polka(wymiar_polki, 0, 0)
|
wymiar_miejsca = Wymiary(0, 0, 0)
|
||||||
|
numerMiejsca = self.numerSzafki + "/" + str(i) + "/" + str(j)
|
||||||
|
miejsce = Miejsce(numerMiejsca,wymiar_miejsca, 0, 0)
|
||||||
|
#wypełnianie pól "zajmowane miejsca" i "dostęp"
|
||||||
for m in range(DUZA_SZAFA): # wiersz
|
for m in range(DUZA_SZAFA): # wiersz
|
||||||
poczatek_wiersz = poczatek_wiersz1 + i * 3 + m
|
poczatek_wiersz = poczatek_wiersz1 + j * 3 + m
|
||||||
for n in range(DUZA_SZAFA): # kolumna
|
for n in range(DUZA_SZAFA): # kolumna
|
||||||
Krata.krata[poczatek_wiersz][poczatek_kolumna + n] = ZawartoscPola.SCIANA
|
Krata.krata[poczatek_wiersz][poczatek_kolumna + n] = ZawartoscPola.SCIANA
|
||||||
pole = PoleKraty(Krata, poczatek_wiersz, poczatek_kolumna)
|
pole = PoleKraty(Krata, poczatek_wiersz, poczatek_kolumna+n)
|
||||||
polka.dodajPole(pole)
|
miejsce.dodajPole(pole)
|
||||||
self.dodajPole(pole)
|
self.dodajPole(pole)
|
||||||
|
if dostępZeStrony=="L":
|
||||||
pole_dostepu = PoleKraty(Krata, poczatek_wiersz, poczatek_kolumna + n - BOK_AGENTA1_W_POLACH) #dostęp z lewej strony
|
pole_dostepu = PoleKraty(Krata, poczatek_wiersz, poczatek_kolumna + n - BOK_AGENTA1_W_POLACH) #dostęp z lewej strony
|
||||||
polka.dodajDostep(pole_dostepu)
|
miejsce.dodajDostep(pole_dostepu)
|
||||||
self.dodajPolke(polka)
|
elif dostępZeStrony == "P":
|
||||||
|
pole_dostepu = PoleKraty(Krata, poczatek_wiersz, poczatek_kolumna + n + BOK_AGENTA1_W_POLACH) # dostęp z prawej strony strony
|
||||||
|
miejsce.dodajDostep(pole_dostepu)
|
||||||
|
self.dodajMiejsce(miejsce)
|
||||||
|
|
||||||
class Pomieszczenie:
|
class Pomieszczenie:
|
||||||
def __init__(self, warunkiPowietrza: WarunkiPowietrza, wysokoscSufitu):
|
def __init__(self, warunkiPowietrza: WarunkiPowietrza, wysokoscSufitu):
|
||||||
|
Loading…
Reference in New Issue
Block a user