Szafki z półkami jako ściany
This commit is contained in:
parent
35073809ef
commit
d3387c820c
@ -4,7 +4,7 @@
|
|||||||
<content url="file://$MODULE_DIR$">
|
<content url="file://$MODULE_DIR$">
|
||||||
<excludeFolder url="file://$MODULE_DIR$/venv" />
|
<excludeFolder url="file://$MODULE_DIR$/venv" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="jdk" jdkName="Python 3.9 (Sztuczna_Inteligencja_Gr1627_03dodaje)" jdkType="Python SDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (sztucznosc)" project-jdk-type="Python SDK" />
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (Sztuczna_Inteligencja_Gr1627_03dodaje)" project-jdk-type="Python SDK" />
|
||||||
</project>
|
</project>
|
14
agent.py
14
agent.py
@ -23,7 +23,7 @@ class Agent:
|
|||||||
self.zrobKrokWMoimKierunku()
|
self.zrobKrokWMoimKierunku()
|
||||||
self.droga -= 1
|
self.droga -= 1
|
||||||
self.okreslPolozenie()
|
self.okreslPolozenie()
|
||||||
if self.wyszedlemPozaKrate():
|
if self.wyszedlemPozaKrate() or self.wszedlemWSciane():
|
||||||
self.cofnijSie()
|
self.cofnijSie()
|
||||||
self.zawroc()
|
self.zawroc()
|
||||||
self.okreslDlugoscDrogi()
|
self.okreslDlugoscDrogi()
|
||||||
@ -65,12 +65,12 @@ class Agent:
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
# ZROBIC sciany
|
# ZROBIC sciany
|
||||||
# def wszedlemWSciane(self):
|
def wszedlemWSciane(self):
|
||||||
# for wiersz in range (self.poleStartoweGorne.wiersz,self.poleKoncoweDolne.wiersz):
|
for wiersz in range (self.poleStartoweGorne.wiersz,self.poleKoncoweDolne.wiersz+1):
|
||||||
# for kolumna in range(self.poleStartoweGorne.kolumna,self.poleKoncoweDolne.kolumna):
|
for kolumna in range(self.poleStartoweGorne.kolumna,self.poleKoncoweDolne.kolumna+1):
|
||||||
# if self.krata.krata[wiersz][kolumna]==ZawartoscPola.SCIANA:
|
if self.krata.krata[wiersz][kolumna]==ZawartoscPola.SCIANA:
|
||||||
# return True
|
return True
|
||||||
# return False
|
return False
|
||||||
|
|
||||||
def zawroc(self):
|
def zawroc(self):
|
||||||
if self.kierunek == Kierunek.GORA:
|
if self.kierunek == Kierunek.GORA:
|
||||||
|
20
main.py
20
main.py
@ -1,11 +1,18 @@
|
|||||||
import os
|
import os
|
||||||
|
import ctypes
|
||||||
|
|
||||||
from agent import *
|
from agent import *
|
||||||
|
from ramy_czyli_wiedza_agenta import *
|
||||||
|
|
||||||
|
#aby działalo w oknie + rozdzielczość ekranu
|
||||||
|
ctypes.windll.shcore.SetProcessDpiAwareness(1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Okno = pygame.display.set_mode((SZEROKOSC_OKNA, WYSOKOSC_OKNA))
|
Okno = pygame.display.set_mode((SZEROKOSC_OKNA, WYSOKOSC_OKNA))
|
||||||
pygame.display.set_caption("Okno1")
|
pygame.display.set_caption("Okno1")
|
||||||
Krata = Krata(Okno)
|
Krata = Krata(Okno)
|
||||||
|
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),
|
||||||
@ -16,8 +23,19 @@ def dodaj_agenta():
|
|||||||
(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):
|
||||||
|
#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)
|
||||||
|
szafka = Szafka(wymiary_szafki, ilosc_polek, poczatek_wiersz1, poczatek_kolumna, Krata)
|
||||||
|
Pomieszczenie.dodajSzafke(szafka)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
dodaj_szafke(0, 20, 8)
|
||||||
|
dodaj_szafke(0, 40, 8)
|
||||||
|
dodaj_szafke(0, 60, 8)
|
||||||
|
dodaj_szafke(0, 80, 8)
|
||||||
dodaj_agenta()
|
dodaj_agenta()
|
||||||
klatkaz = pygame.time.Clock()
|
klatkaz = pygame.time.Clock()
|
||||||
warunek_dzialania = True
|
warunek_dzialania = True
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
from enumy_i_slowniki import *
|
from enumy_i_slowniki import *
|
||||||
from stale import *
|
from stale import *
|
||||||
|
from krata import *
|
||||||
|
|
||||||
|
|
||||||
class Wymiary:
|
class Wymiary:
|
||||||
@ -48,20 +49,47 @@ class Polka:
|
|||||||
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
|
||||||
|
# atrybut dostęp składa się z 9 pól ponieważ tyle miejsca na kracie zajmuje agent
|
||||||
|
# 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 = []
|
||||||
|
|
||||||
|
def dodajPole(self, pole: PoleKraty):
|
||||||
|
self.zajmowanePola.append(pole)
|
||||||
|
|
||||||
|
def dodajDostep(self, pole: PoleKraty):
|
||||||
|
self.dostep.append(pole)
|
||||||
|
|
||||||
|
|
||||||
class Szafka:
|
class Szafka:
|
||||||
def __init__(self, wymiary: Wymiary):
|
def __init__(self, wymiary: Wymiary, ilosc_polek, poczatek_kolumna, poczatek_wiersz1, Krata: Krata):
|
||||||
self.wymiary = wymiary
|
self.wymiary = wymiary
|
||||||
self.Polki = []
|
self.Polki = []
|
||||||
self.zajmowanePola = []
|
self.zajmowanePola = []
|
||||||
|
self.utworzPustaSzafke(ilosc_polek, poczatek_kolumna, poczatek_wiersz1, Krata)
|
||||||
|
|
||||||
def dodajPolke(self, polka: Polka):
|
def dodajPolke(self, polka: Polka):
|
||||||
self.Polki.append(polka)
|
self.Polki.append(polka)
|
||||||
|
|
||||||
def dodajPole(self, pole: PoleMapy):
|
def dodajPole(self, pole: PoleKraty):
|
||||||
self.zajmowanePola.append(pole)
|
self.zajmowanePola.append(pole)
|
||||||
|
|
||||||
|
def utworzPustaSzafke(self, ilosc_polek, poczatek_wiersz1, poczatek_kolumna, Krata: Krata):
|
||||||
|
for i in range(ilosc_polek):
|
||||||
|
wymiar_polki = Wymiary(0, 0, 0)
|
||||||
|
polka = Polka(wymiar_polki, 0, 0)
|
||||||
|
for m in range(DUZA_SZAFA): # wiersz
|
||||||
|
poczatek_wiersz = poczatek_wiersz1 + i * 3 + m
|
||||||
|
for n in range(DUZA_SZAFA): # kolumna
|
||||||
|
Krata.krata[poczatek_wiersz][poczatek_kolumna + n] = ZawartoscPola.SCIANA
|
||||||
|
pole = PoleKraty(Krata, poczatek_wiersz, poczatek_kolumna)
|
||||||
|
polka.dodajPole(pole)
|
||||||
|
self.dodajPole(pole)
|
||||||
|
pole_dostepu = PoleKraty(Krata, poczatek_wiersz, poczatek_kolumna + n - BOK_AGENTA1_W_POLACH) #dostęp z lewej strony
|
||||||
|
polka.dodajDostep(pole_dostepu)
|
||||||
|
self.dodajPolke(polka)
|
||||||
|
|
||||||
|
|
||||||
class Pomieszczenie:
|
class Pomieszczenie:
|
||||||
def __init__(self, warunkiPowietrza: WarunkiPowietrza, wysokoscSufitu):
|
def __init__(self, warunkiPowietrza: WarunkiPowietrza, wysokoscSufitu):
|
||||||
|
2
stale.py
2
stale.py
@ -13,6 +13,8 @@ WYSOKOSC_OKNA = LICZBA_POL_W_PIONIE * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) + ODSTEP
|
|||||||
BOK_AGENTA1_W_POLACH = 3
|
BOK_AGENTA1_W_POLACH = 3
|
||||||
BOK_AGENTA1 = BOK_AGENTA1_W_POLACH * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) - ODSTEP_MIEDZY_POLAMI
|
BOK_AGENTA1 = BOK_AGENTA1_W_POLACH * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) - ODSTEP_MIEDZY_POLAMI
|
||||||
#
|
#
|
||||||
|
DUZA_SZAFA=3
|
||||||
|
#
|
||||||
BIALY = (255, 255, 255)
|
BIALY = (255, 255, 255)
|
||||||
JASNOSZARY1 = (200, 200, 200)
|
JASNOSZARY1 = (200, 200, 200)
|
||||||
SZARY1 = (150, 150, 150)
|
SZARY1 = (150, 150, 150)
|
||||||
|
Loading…
Reference in New Issue
Block a user