This commit is contained in:
s500512 2024-12-11 16:47:38 +01:00
parent f2ba8c96a2
commit 582b86edd1
2 changed files with 63 additions and 47 deletions

View File

@ -1,4 +1,4 @@
from abc import ABC, abstractmethod
from abc import ABC
class Jednostka(ABC):

108
main.py
View File

@ -8,6 +8,15 @@ 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
@ -30,64 +39,71 @@ 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('Stefan')
l1 = Lucznik('Agata')
k1 = Kusznik('Bogumił')
p1 = Piechur('Łukasz')
r1 = Rycerz('Lukasz')
l1 = Lucznik('Sebastian')
jednostki = [r1, l1, k1, p1]
jednostki = [r1, l1]
plansza.dodaj_jednostke(r1, 0, 0)
plansza.dodaj_jednostke(l1, 0, 1)
plansza.dodaj_jednostke(k1, 4, 4)
plansza.dodaj_jednostke(p1, 2, 4)
plansza.dodaj_jednostke(l1, 4, 4)
print('Jednostki zostaly rozstawiona. Niech rozpocznie sie walka')
while r1.czy_zyje() or l1.czy_zyje() or k1.czy_zyje() or p1.czy_zyje():
while wiecej_niz_jeden_zywy():
for jednostka in jednostki:
plansza.wyswietl()
print(f'Tura {jednostka.nazwa} {jednostka.imie}')
jednostka.wyswietl_stan()
opcja = 0
wybrano_opcje = False
wybrano_cel = False
wykonano_ruch = False
while True:
print(f'1. Ruch')
print(f'2. Atak')
print('Wybierz opcje: ')
opcja = int(input('Wprowadz opcje:'))
wybrano_opcje = waliduj_opcje(opcja)
if wybrano_opcje:
break
opcja = wybierz_opcje()
if opcja == 1:
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)
plansza.wyswietl()
else:
print('Ups! Nieprawidlowe wspolrzedne. Podaj jeszcze raz')
if wykonano_ruch:
break
wykonaj_ruch()
elif opcja == 2:
x = -1
while True:
wyswietl_jednostki()
x = int(input('Kogo atakujesz?'))
if waliduj_cel(x):
wykonano_ruch = plansza.wykonaj_atak(jednostka, jednostki[x])
else:
print('Ups! Nieprawidłowy cel. Podaj jeszcze raz')
if wykonano_ruch:
break
wykonaj_atak()