Prześlij pliki do ''
This commit is contained in:
parent
b88ac20618
commit
512af7d696
117
agent.py
Normal file
117
agent.py
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
import random
|
||||||
|
|
||||||
|
from krata import *
|
||||||
|
|
||||||
|
|
||||||
|
class Agent:
|
||||||
|
bok = BOK_AGENTA1
|
||||||
|
bokWPolach = BOK_AGENTA1_W_POLACH
|
||||||
|
|
||||||
|
def __init__(self, Krata, poleStartoweGorne, tekstura):
|
||||||
|
self.krata = Krata
|
||||||
|
self.poleStartoweGorne = poleStartoweGorne
|
||||||
|
self.tekstura = tekstura
|
||||||
|
self.okreslPolozenie()
|
||||||
|
self.obierzNowyKierunek()
|
||||||
|
self.okreslDlugoscDrogi()
|
||||||
|
Krata.agent = self
|
||||||
|
|
||||||
|
def ruszSie(self):
|
||||||
|
if self.droga <= 0:
|
||||||
|
self.obierzNowyKierunek()
|
||||||
|
self.okreslDlugoscDrogi()
|
||||||
|
self.zrobKrokWMoimKierunku()
|
||||||
|
self.droga -= 1
|
||||||
|
self.okreslPolozenie()
|
||||||
|
if self.wyszedlemPozaKrate():
|
||||||
|
self.cofnijSie()
|
||||||
|
self.zawroc()
|
||||||
|
self.okreslDlugoscDrogi()
|
||||||
|
|
||||||
|
def obierzNowyKierunek(self):
|
||||||
|
self.kierunek = Kierunek(random.randint(0, 3))
|
||||||
|
if self.maxDlugoscDrogiWMoimKierunku() < 1:
|
||||||
|
self.obierzNowyKierunek()
|
||||||
|
|
||||||
|
def okreslDlugoscDrogi(self):
|
||||||
|
self.droga = random.randint(1, self.maxDlugoscDrogiWMoimKierunku())
|
||||||
|
|
||||||
|
def cofnijSie(self):
|
||||||
|
self.zrobKrokWOdwrotnymKierunku()
|
||||||
|
self.okreslPolozenie()
|
||||||
|
|
||||||
|
def okreslPolozenie(self):
|
||||||
|
self.okreslPoleKoncoweDolne()
|
||||||
|
self.okreslHitbox()
|
||||||
|
|
||||||
|
def okreslHitbox(self):
|
||||||
|
self.hitbox = pygame.Rect(self.poleStartoweGorne.start, self.poleStartoweGorne.gora, self.bok, self.bok)
|
||||||
|
|
||||||
|
def okreslPoleKoncoweDolne(self):
|
||||||
|
wiersz = self.poleStartoweGorne.wiersz + self.bokWPolach - 1
|
||||||
|
kolumna = self.poleStartoweGorne.kolumna + self.bokWPolach - 1
|
||||||
|
self.poleKoncoweDolne = PoleKraty(self.krata, wiersz, kolumna)
|
||||||
|
|
||||||
|
def wyszedlemPozaKrate(self):
|
||||||
|
if self.poleStartoweGorne.wiersz < 0:
|
||||||
|
return True
|
||||||
|
elif self.poleKoncoweDolne.wiersz > self.krata.liczbaPolPionowo - 1:
|
||||||
|
return True
|
||||||
|
elif self.poleStartoweGorne.kolumna < 0:
|
||||||
|
return True
|
||||||
|
elif self.poleKoncoweDolne.kolumna > self.krata.liczbaPolPoziomo - 1:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
|
||||||
|
def zawroc(self):
|
||||||
|
if self.kierunek == Kierunek.GORA:
|
||||||
|
self.kierunek = Kierunek.DOL
|
||||||
|
elif self.kierunek == Kierunek.DOL:
|
||||||
|
self.kierunek = Kierunek.GORA
|
||||||
|
elif self.kierunek == Kierunek.LEWO:
|
||||||
|
self.kierunek = Kierunek.PRAWO
|
||||||
|
elif self.kierunek == Kierunek.PRAWO:
|
||||||
|
self.kierunek = Kierunek.LEWO
|
||||||
|
|
||||||
|
def maxDlugoscDrogiWMoimKierunku(self):
|
||||||
|
if self.kierunek == Kierunek.GORA:
|
||||||
|
return self.poleStartoweGorne.wiersz
|
||||||
|
elif self.kierunek == Kierunek.DOL:
|
||||||
|
return self.krata.liczbaPolPionowo - self.poleKoncoweDolne.wiersz - 1
|
||||||
|
elif self.kierunek == Kierunek.LEWO:
|
||||||
|
return self.poleStartoweGorne.kolumna
|
||||||
|
elif self.kierunek == Kierunek.PRAWO:
|
||||||
|
return self.krata.liczbaPolPoziomo - self.poleKoncoweDolne.kolumna - 1
|
||||||
|
|
||||||
|
def zrobKrokWMoimKierunku(self):
|
||||||
|
if self.kierunek == Kierunek.GORA:
|
||||||
|
self.idzWGore()
|
||||||
|
elif self.kierunek == Kierunek.DOL:
|
||||||
|
self.idzWDol()
|
||||||
|
elif self.kierunek == Kierunek.LEWO:
|
||||||
|
self.idzWLewo()
|
||||||
|
elif self.kierunek == Kierunek.PRAWO:
|
||||||
|
self.idzWPrawo()
|
||||||
|
|
||||||
|
def zrobKrokWOdwrotnymKierunku(self):
|
||||||
|
if self.kierunek == Kierunek.GORA:
|
||||||
|
self.idzWDol()
|
||||||
|
elif self.kierunek == Kierunek.DOL:
|
||||||
|
self.idzWGore()
|
||||||
|
elif self.kierunek == Kierunek.LEWO:
|
||||||
|
self.idzWPrawo()
|
||||||
|
elif self.kierunek == Kierunek.PRAWO:
|
||||||
|
self.idzWLewo()
|
||||||
|
|
||||||
|
def idzWGore(self):
|
||||||
|
self.poleStartoweGorne.wiersz -= 1
|
||||||
|
|
||||||
|
def idzWDol(self):
|
||||||
|
self.poleStartoweGorne.wiersz += 1
|
||||||
|
|
||||||
|
def idzWLewo(self):
|
||||||
|
self.poleStartoweGorne.kolumna -= 1
|
||||||
|
|
||||||
|
def idzWPrawo(self):
|
||||||
|
self.poleStartoweGorne.kolumna += 1
|
14
enumy.py
Normal file
14
enumy.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
from enum import Enum
|
||||||
|
|
||||||
|
|
||||||
|
class Kierunek(Enum):
|
||||||
|
GORA = 0
|
||||||
|
DOL = 1
|
||||||
|
LEWO = 2
|
||||||
|
PRAWO = 3
|
||||||
|
|
||||||
|
|
||||||
|
class ZawartoscPola(Enum):
|
||||||
|
PUSTE = 0
|
||||||
|
AGENT = 1
|
||||||
|
LAWA = 2
|
5
etykieta.py
Normal file
5
etykieta.py
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
nazwa_paczki =""
|
||||||
|
producent =""
|
||||||
|
numer_paczki=int
|
||||||
|
cecha_paczki =""
|
||||||
|
data_wysylki= ""
|
73
krata.py
Normal file
73
krata.py
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
import pygame
|
||||||
|
|
||||||
|
from enumy import *
|
||||||
|
from stale import *
|
||||||
|
|
||||||
|
|
||||||
|
class PoleKraty:
|
||||||
|
def __init__(self, Krata, wiersz, kolumna):
|
||||||
|
self.krata = Krata
|
||||||
|
self.bok = self.krata.bokPola
|
||||||
|
self._wiersz = wiersz
|
||||||
|
self._kolumna = kolumna
|
||||||
|
self.okreslGore()
|
||||||
|
self.okreslStart()
|
||||||
|
|
||||||
|
def okreslGore(self):
|
||||||
|
self.gora = (self.bok + self.krata.odstepMiedzyPolami) * self.wiersz + self.krata.odstepMiedzyPolami
|
||||||
|
|
||||||
|
def okreslStart(self):
|
||||||
|
self.start = (self.bok + self.krata.odstepMiedzyPolami) * self.kolumna + self.krata.odstepMiedzyPolami
|
||||||
|
|
||||||
|
def getWiersz(self):
|
||||||
|
return self._wiersz
|
||||||
|
|
||||||
|
def setWiersz(self, x):
|
||||||
|
self._wiersz = x
|
||||||
|
self.okreslGore()
|
||||||
|
|
||||||
|
def getKolumna(self):
|
||||||
|
return self._kolumna
|
||||||
|
|
||||||
|
def setKolumna(self, x):
|
||||||
|
self._kolumna = x
|
||||||
|
self.okreslStart()
|
||||||
|
|
||||||
|
wiersz = property(getWiersz, setWiersz)
|
||||||
|
kolumna = property(getKolumna, setKolumna)
|
||||||
|
|
||||||
|
|
||||||
|
class Krata:
|
||||||
|
def __init__(self, okno):
|
||||||
|
self.okno = okno
|
||||||
|
self.liczbaPolPoziomo = LICZBA_POL_W_POZIOMIE
|
||||||
|
self.liczbaPolPionowo = LICZBA_POL_W_PIONIE
|
||||||
|
self.bokPola = BOK_POLA
|
||||||
|
self.odstepMiedzyPolami = ODSTEP_MIEDZY_POLAMI
|
||||||
|
self.krata = self.utworzPustaKrate()
|
||||||
|
self.agent = None
|
||||||
|
|
||||||
|
def utworzPustaKrate(self):
|
||||||
|
self.krata = []
|
||||||
|
for rzad in range(self.liczbaPolPionowo):
|
||||||
|
self.krata.append([])
|
||||||
|
for kolumna in range(self.liczbaPolPoziomo):
|
||||||
|
self.krata[rzad].append(ZawartoscPola.PUSTE)
|
||||||
|
|
||||||
|
def wyswietlKrate(self):
|
||||||
|
self.narysujKrate()
|
||||||
|
self.narysujAgenta()
|
||||||
|
pygame.display.update()
|
||||||
|
|
||||||
|
def narysujKrate(self):
|
||||||
|
self.okno.fill(SZARY1)
|
||||||
|
for rzad in range(self.liczbaPolPionowo):
|
||||||
|
for kolumna in range(self.liczbaPolPoziomo):
|
||||||
|
start = (self.odstepMiedzyPolami + self.bokPola) * kolumna + self.odstepMiedzyPolami
|
||||||
|
gora = (self.odstepMiedzyPolami + self.bokPola) * rzad + self.odstepMiedzyPolami
|
||||||
|
pygame.draw.rect(self.okno, BIALY, [start, gora, self.bokPola, self.bokPola])
|
||||||
|
|
||||||
|
def narysujAgenta(self):
|
||||||
|
if self.agent is not None:
|
||||||
|
self.okno.blit(self.agent.tekstura, (self.agent.hitbox.x, self.agent.hitbox.y))
|
||||||
|
self.agent.ruszSie()
|
35
main.py
Normal file
35
main.py
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
import os
|
||||||
|
|
||||||
|
from agent import *
|
||||||
|
import etykieta
|
||||||
|
|
||||||
|
Okno = pygame.display.set_mode((SZEROKOSC_OKNA, WYSOKOSC_OKNA))
|
||||||
|
pygame.display.set_caption("Okno1")
|
||||||
|
Krata = Krata(Okno)
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
def dodaj_agenta():
|
||||||
|
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))
|
||||||
|
pom = 'test1_ikona.png'
|
||||||
|
ikona = pygame.transform.scale(pygame.image.load(os.path.join('Ikony', pom)),
|
||||||
|
(BOK_AGENTA1, BOK_AGENTA1))
|
||||||
|
Agent(Krata, pole_lewe_gorne, ikona)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
dodaj_agenta()
|
||||||
|
klatkaz = pygame.time.Clock()
|
||||||
|
warunek_dzialania = True
|
||||||
|
while warunek_dzialania:
|
||||||
|
klatkaz.tick(FPS)
|
||||||
|
for event in pygame.event.get():
|
||||||
|
if event.type == pygame.QUIT:
|
||||||
|
warunek_dzialania = False
|
||||||
|
break
|
||||||
|
Krata.wyswietlKrate()
|
||||||
|
pygame.quit()
|
||||||
|
|
||||||
|
|
||||||
|
main()
|
Loading…
Reference in New Issue
Block a user