Wózki nie najeżdżają na siebie. Dodanie funkcjonalności agentom.
This commit is contained in:
parent
90356ec6d8
commit
2d05a136a0
@ -3,7 +3,6 @@ import random
|
|||||||
from klasy import *
|
from klasy import *
|
||||||
|
|
||||||
|
|
||||||
# poleKoncoweDolne -> wiersz+bokWPolach-1 kolumna+bokWPolach-1
|
|
||||||
class Agent:
|
class Agent:
|
||||||
bok = BOK_AGENTA1
|
bok = BOK_AGENTA1
|
||||||
bokWPolach = BOK_AGENTA1_W_POLACH
|
bokWPolach = BOK_AGENTA1_W_POLACH
|
||||||
@ -35,12 +34,12 @@ class Agent:
|
|||||||
losowa_droga = random.randint(0, self.poleStartoweGorne.wiersz)
|
losowa_droga = random.randint(0, self.poleStartoweGorne.wiersz)
|
||||||
elif self.kierunek == Kierunek.DOL:
|
elif self.kierunek == Kierunek.DOL:
|
||||||
losowa_droga = random.randint(0, (self.krata.liczbaPolPionowo - 1) - (
|
losowa_droga = random.randint(0, (self.krata.liczbaPolPionowo - 1) - (
|
||||||
self.poleStartoweGorne.wiersz + self.bokWPolach - 1))
|
self.poleStartoweGorne.wiersz + self.bokWPolach - 1))
|
||||||
elif self.kierunek == Kierunek.LEWO:
|
elif self.kierunek == Kierunek.LEWO:
|
||||||
losowa_droga = random.randint(0, self.poleStartoweGorne.kolumna)
|
losowa_droga = random.randint(0, self.poleStartoweGorne.kolumna)
|
||||||
elif self.kierunek == Kierunek.PRAWO:
|
elif self.kierunek == Kierunek.PRAWO:
|
||||||
losowa_droga = random.randint(0, (self.krata.liczbaPolPoziomo - 1) - (
|
losowa_droga = random.randint(0, (self.krata.liczbaPolPoziomo - 1) - (
|
||||||
self.poleStartoweGorne.wiersz + self.bokWPolach - 1))
|
self.poleStartoweGorne.wiersz + self.bokWPolach - 1))
|
||||||
self.droga = losowa_droga
|
self.droga = losowa_droga
|
||||||
|
|
||||||
def idzWGore(self):
|
def idzWGore(self):
|
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
|
68
klasy.py
Normal file
68
klasy.py
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
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.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])
|
||||||
|
pygame.display.update()
|
||||||
|
|
||||||
|
def wyswietlAgenta(self):
|
||||||
|
self.okno.blit(self.agent.tekstura, (self.agent.hitbox.x, self.agent.hitbox.y))
|
||||||
|
pygame.display.update()
|
4
main.py
4
main.py
@ -1,6 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
from agenci import *
|
from agent import *
|
||||||
|
|
||||||
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")
|
||||||
@ -13,7 +13,7 @@ def dodaj_agenta():
|
|||||||
pom = 'test1_ikona.png'
|
pom = 'test1_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))
|
||||||
nowy_agent = Agent(Krata, pole_lewe_gorne, ikona, Kierunek.GORA, 0)
|
Agent(Krata, pole_lewe_gorne, ikona, Kierunek.GORA, 0)
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
6
stale.py
6
stale.py
@ -3,10 +3,10 @@ FPS = 1
|
|||||||
# SZEROKOSC_OKNA = 1500
|
# SZEROKOSC_OKNA = 1500
|
||||||
# WYSOKOSC_OKNA = 750
|
# WYSOKOSC_OKNA = 750
|
||||||
|
|
||||||
LICZBA_POL_W_POZIOMIE = 80
|
LICZBA_POL_W_POZIOMIE = 60
|
||||||
LICZBA_POL_W_PIONIE = 40
|
LICZBA_POL_W_PIONIE = 30
|
||||||
BOK_POLA = 20
|
BOK_POLA = 20
|
||||||
ODSTEP_MIEDZY_POLAMI = 1
|
ODSTEP_MIEDZY_POLAMI = 2
|
||||||
SZEROKOSC_OKNA = LICZBA_POL_W_POZIOMIE * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) + ODSTEP_MIEDZY_POLAMI
|
SZEROKOSC_OKNA = LICZBA_POL_W_POZIOMIE * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) + ODSTEP_MIEDZY_POLAMI
|
||||||
WYSOKOSC_OKNA = LICZBA_POL_W_PIONIE * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) + ODSTEP_MIEDZY_POLAMI
|
WYSOKOSC_OKNA = LICZBA_POL_W_PIONIE * (BOK_POLA + ODSTEP_MIEDZY_POLAMI) + ODSTEP_MIEDZY_POLAMI
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user