Compare commits
2 Commits
8c1495992f
...
7869bd002b
Author | SHA1 | Date | |
---|---|---|---|
7869bd002b | |||
411732e821 |
@ -16,3 +16,9 @@ class Jednostka(ABC):
|
||||
if self.zdrowie > 0:
|
||||
return True
|
||||
return False
|
||||
|
||||
def wyswietl_stan(self):
|
||||
print(f'Zdrowie: {self.zdrowie}')
|
||||
print(f'Sila: {self.sila_ataku}')
|
||||
print(f'Zasieg: {self.zasieg_ataku}')
|
||||
print(f'Szybkosc: {self.szybkosc_ruchu}')
|
||||
|
@ -7,3 +7,7 @@ class Kusznik(Jednostka):
|
||||
|
||||
def __str__(self):
|
||||
return 'K'
|
||||
|
||||
def wyswietl_stan(self):
|
||||
print('Kusznik')
|
||||
super().wyswietl_stan()
|
||||
|
@ -7,3 +7,7 @@ class Lucznik(Jednostka):
|
||||
|
||||
def __str__(self):
|
||||
return 'L'
|
||||
|
||||
def wyswietl_stan(self):
|
||||
print('Łucznik')
|
||||
super().wyswietl_stan()
|
||||
|
17
main.py
17
main.py
@ -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()
|
||||
|
@ -7,3 +7,7 @@ class Piechur(Jednostka):
|
||||
|
||||
def __str__(self):
|
||||
return 'P'
|
||||
|
||||
def wyswietl_stan(self):
|
||||
print('Piechur')
|
||||
super().wyswietl_stan()
|
||||
|
31
plansza.py
31
plansza.py
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user