from plansza import Plansza from rycerz import Rycerz from lucznik import Lucznik from kusznik import Kusznik from piechur import Piechur jednostki = [] def wiecej_niz_jeden_zywy(): licznik = 0 for i in jednostki: if i.czy_zyje(): licznik += 1 return licznik > 1 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) 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 if __name__ == '__main__': plansza = Plansza() r1 = Rycerz('Lukasz') l1 = Lucznik('Sebastian') jednostki = [r1, l1] plansza.dodaj_jednostke(r1, 0, 0) plansza.dodaj_jednostke(l1, 4, 4) print('Jednostki zostaly rozstawiona. Niech rozpocznie sie walka') while wiecej_niz_jeden_zywy(): for jednostka in jednostki: plansza.wyswietl() print(f'Tura {jednostka.nazwa} {jednostka.imie}') jednostka.wyswietl_stan() opcja = wybierz_opcje() if opcja == 1: wykonaj_ruch() elif opcja == 2: wykonaj_atak()