Add part 3

This commit is contained in:
s500512 2024-12-09 20:21:38 +01:00
parent 411732e821
commit 7869bd002b
2 changed files with 44 additions and 4 deletions

17
main.py
View File

@ -7,10 +7,19 @@ from piechur import Piechur
if __name__ == '__main__':
plansza = Plansza()
plansza.dodaj_jednostke(Rycerz(), 1, 1)
plansza.dodaj_jednostke(Lucznik(), 2, 1)
r1 = Rycerz()
l1 = Lucznik()
k1 = Kusznik()
p1 = Piechur()
plansza.dodaj_jednostke(r1, 1, 1)
plansza.dodaj_jednostke(l1, 2, 1)
plansza = Plansza()
plansza.dodaj_jednostke(Kusznik(), 5, 5)
plansza.dodaj_jednostke(Piechur(), 3, 5)
plansza.dodaj_jednostke(k1, 5, 5)
plansza.dodaj_jednostke(p1, 3, 5)
plansza.wykonaj_atak(r1, l1)
l1.wyswietl_stan()

View File

@ -1,3 +1,6 @@
import math
class Plansza:
_instance = None
@ -41,3 +44,31 @@ class Plansza:
print(self.pole[x][y], end=' ')
print()
print()
def wykonaj_atak(self, atakujacy, cel):
if self.sprawdz_zasieg(atakujacy, cel):
cel.otrzymaj_obrazenia(self.oblicz_obrazenia(atakujacy, cel))
else:
print('Cel jest za daleko')
def sprawdz_zasieg(self, atakujacy, cel):
x1, y1 = self.znajdz(atakujacy)
x2, y2 = self.znajdz(cel)
dystans = math.sqrt(math.pow(math.fabs(x1 - x2), 2) + math.pow(math.fabs(y1- y2), 2))
dystans = round(dystans, 0)
if atakujacy.zasieg_ataku >= dystans:
return True
else:
return False
def oblicz_obrazenia(self, atakujacy, cel):
obrazenia = atakujacy.sila_ataku
return obrazenia
def znajdz(self, jednostka):
for y in range(5):
for x in range(5):
if self.pole[x][y] == jednostka:
return x, y