2024-12-09 19:29:11 +01:00
|
|
|
from plansza import Plansza
|
|
|
|
from rycerz import Rycerz
|
|
|
|
from lucznik import Lucznik
|
|
|
|
from kusznik import Kusznik
|
|
|
|
from piechur import Piechur
|
|
|
|
|
2024-12-11 16:21:28 +01:00
|
|
|
|
|
|
|
jednostki = []
|
|
|
|
|
|
|
|
|
2024-12-11 16:47:38 +01:00
|
|
|
def wiecej_niz_jeden_zywy():
|
|
|
|
licznik = 0
|
|
|
|
for i in jednostki:
|
|
|
|
if i.czy_zyje():
|
|
|
|
licznik += 1
|
|
|
|
|
|
|
|
return licznik > 1
|
|
|
|
|
|
|
|
|
2024-12-11 16:21:28 +01:00
|
|
|
def waliduj_opcje(opcja):
|
|
|
|
return 1 <= opcja <= 2
|
|
|
|
|
|
|
|
|
|
|
|
def wprowadz_wspolrzedna(w):
|
|
|
|
a = int(input(f'Podaj wspolrzedna {w}: '))
|
|
|
|
return a
|
|
|
|
|
|
|
|
|
|
|
|
def waliduj_wspolrzedna(a):
|
|
|
|
return 0 <= a <= 4
|
|
|
|
|
|
|
|
|
|
|
|
def wyswietl_jednostki():
|
|
|
|
for i in range(len(jednostki)):
|
|
|
|
print(f'{i} - {jednostki[i]}')
|
|
|
|
|
|
|
|
|
|
|
|
def waliduj_cel(x):
|
|
|
|
return 0 <= x <= (len(jednostki) - 1)
|
|
|
|
|
|
|
|
|
2024-12-11 16:47:38 +01:00
|
|
|
def wybierz_opcje():
|
|
|
|
opcja = -1
|
|
|
|
wybrano_opcje = False
|
|
|
|
while True:
|
|
|
|
print('Wybierz opcje: ')
|
|
|
|
print(f'1. Ruch')
|
|
|
|
print(f'2. Atak')
|
|
|
|
opcja = int(input('Wprowadz opcje:'))
|
|
|
|
wybrano_opcje = waliduj_opcje(opcja)
|
|
|
|
|
|
|
|
if wybrano_opcje:
|
|
|
|
break
|
|
|
|
return opcja
|
|
|
|
|
|
|
|
|
|
|
|
def wykonaj_ruch():
|
|
|
|
wykonano_ruch = False
|
|
|
|
while True:
|
|
|
|
x = wprowadz_wspolrzedna('x')
|
|
|
|
y = wprowadz_wspolrzedna('y')
|
|
|
|
if waliduj_wspolrzedna(x) and waliduj_wspolrzedna(y):
|
|
|
|
wykonano_ruch = plansza.rusz_jednostke(jednostka, x, y)
|
|
|
|
else:
|
|
|
|
print('Ups! Nieprawidlowe wspolrzedne. Podaj jeszcze raz')
|
|
|
|
|
|
|
|
if wykonano_ruch:
|
|
|
|
break
|
|
|
|
|
|
|
|
|
|
|
|
def wykonaj_atak():
|
|
|
|
wykonano_ruch = False
|
|
|
|
while True:
|
|
|
|
wyswietl_jednostki()
|
|
|
|
indeks_celu = int(input('Kogo atakujesz?'))
|
|
|
|
|
|
|
|
if waliduj_cel(indeks_celu):
|
|
|
|
wykonano_ruch = plansza.wykonaj_atak(jednostka, jednostki[indeks_celu])
|
|
|
|
else:
|
|
|
|
print('Ups! Nieprawidłowy cel. Podaj jeszcze raz')
|
|
|
|
|
|
|
|
if wykonano_ruch:
|
|
|
|
break
|
|
|
|
|
|
|
|
|
2024-12-09 19:29:11 +01:00
|
|
|
if __name__ == '__main__':
|
|
|
|
plansza = Plansza()
|
|
|
|
|
2024-12-11 16:47:38 +01:00
|
|
|
r1 = Rycerz('Lukasz')
|
|
|
|
l1 = Lucznik('Sebastian')
|
2024-12-11 16:21:28 +01:00
|
|
|
|
2024-12-11 16:47:38 +01:00
|
|
|
jednostki = [r1, l1]
|
2024-12-11 16:21:28 +01:00
|
|
|
|
|
|
|
plansza.dodaj_jednostke(r1, 0, 0)
|
2024-12-11 16:47:38 +01:00
|
|
|
plansza.dodaj_jednostke(l1, 4, 4)
|
2024-12-11 16:21:28 +01:00
|
|
|
|
|
|
|
print('Jednostki zostaly rozstawiona. Niech rozpocznie sie walka')
|
2024-12-11 16:47:38 +01:00
|
|
|
while wiecej_niz_jeden_zywy():
|
2024-12-11 16:21:28 +01:00
|
|
|
for jednostka in jednostki:
|
|
|
|
plansza.wyswietl()
|
|
|
|
print(f'Tura {jednostka.nazwa} {jednostka.imie}')
|
2024-12-11 16:47:38 +01:00
|
|
|
jednostka.wyswietl_stan()
|
2024-12-11 16:21:28 +01:00
|
|
|
|
2024-12-11 16:47:38 +01:00
|
|
|
opcja = wybierz_opcje()
|
2024-12-11 16:21:28 +01:00
|
|
|
|
|
|
|
if opcja == 1:
|
2024-12-11 16:47:38 +01:00
|
|
|
wykonaj_ruch()
|
2024-12-11 16:21:28 +01:00
|
|
|
elif opcja == 2:
|
2024-12-11 16:47:38 +01:00
|
|
|
wykonaj_atak()
|