Sztuczna_Inteligencja_Gr16/agent.py

98 lines
3.4 KiB
Python

import random
from klasy import *
class Agent:
bok = BOK_AGENTA1
bokWPolach = BOK_AGENTA1_W_POLACH
def __init__(self, Krata, poleStartoweGorne, tekstura, kierunek, droga):
self.krata = Krata
self.poleStartoweGorne = poleStartoweGorne
self.okreslHitbox()
self.okreslPoleKoncoweDolne()
self.tekstura = tekstura
self.kierunek = kierunek
self.droga = droga
Krata.agent = self
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 obierzNowyKierunek(self):
self.kierunek = Kierunek(random.randint(0, 3))
def okreslDlugoscDrogi(self):
losowa_droga = None
if self.kierunek == Kierunek.GORA:
losowa_droga = random.randint(0, self.poleStartoweGorne.wiersz)
elif self.kierunek == Kierunek.DOL:
losowa_droga = random.randint(0, (self.krata.liczbaPolPionowo - 1) - (
self.poleStartoweGorne.wiersz + self.bokWPolach - 1))
elif self.kierunek == Kierunek.LEWO:
losowa_droga = random.randint(0, self.poleStartoweGorne.kolumna)
elif self.kierunek == Kierunek.PRAWO:
losowa_droga = random.randint(0, (self.krata.liczbaPolPoziomo - 1) - (
self.poleStartoweGorne.wiersz + self.bokWPolach - 1))
self.droga = losowa_droga
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
def wyszedlemPozaKrate(self):
if self.poleStartoweGorne.wiersz not in range(0, (self.krata.liczbaPolWPionie - 1) - (self.bokWPolach - 1)):
return False
elif self.poleStartoweGorne.kolumna in range(0, (self.krata.liczbaPolWPoziomie - 1) - (self.bokWPolach - 1)):
return False
else:
return True
def ruszSie(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()
if self.wyszedlemPozaKrate():
self.cofnijSie()
self.zawroc()
self.okreslDlugoscDrogi()
def cofnijSie(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 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