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): class Jednostka(ABC):

82
main.py
View File

@ -8,6 +8,15 @@ from piechur import Piechur
jednostki = [] 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): def waliduj_opcje(opcja):
return 1 <= opcja <= 2 return 1 <= opcja <= 2
@ -30,64 +39,71 @@ def waliduj_cel(x):
return 0 <= x <= (len(jednostki) - 1) return 0 <= x <= (len(jednostki) - 1)
if __name__ == '__main__': def wybierz_opcje():
plansza = Plansza() opcja = -1
r1 = Rycerz('Stefan')
l1 = Lucznik('Agata')
k1 = Kusznik('Bogumił')
p1 = Piechur('Łukasz')
jednostki = [r1, l1, k1, p1]
plansza.dodaj_jednostke(r1, 0, 0)
plansza.dodaj_jednostke(l1, 0, 1)
plansza.dodaj_jednostke(k1, 4, 4)
plansza.dodaj_jednostke(p1, 2, 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():
for jednostka in jednostki:
plansza.wyswietl()
print(f'Tura {jednostka.nazwa} {jednostka.imie}')
opcja = 0
wybrano_opcje = False wybrano_opcje = False
wybrano_cel = False
wykonano_ruch = False
while True: while True:
print('Wybierz opcje: ')
print(f'1. Ruch') print(f'1. Ruch')
print(f'2. Atak') print(f'2. Atak')
print('Wybierz opcje: ')
opcja = int(input('Wprowadz opcje:')) opcja = int(input('Wprowadz opcje:'))
wybrano_opcje = waliduj_opcje(opcja) wybrano_opcje = waliduj_opcje(opcja)
if wybrano_opcje: if wybrano_opcje:
break break
return opcja
if opcja == 1:
def wykonaj_ruch():
wykonano_ruch = False
while True: while True:
x = wprowadz_wspolrzedna('x') x = wprowadz_wspolrzedna('x')
y = wprowadz_wspolrzedna('y') y = wprowadz_wspolrzedna('y')
if waliduj_wspolrzedna(x) and waliduj_wspolrzedna(y): if waliduj_wspolrzedna(x) and waliduj_wspolrzedna(y):
wykonano_ruch = plansza.rusz_jednostke(jednostka, x, y) wykonano_ruch = plansza.rusz_jednostke(jednostka, x, y)
plansza.wyswietl()
else: else:
print('Ups! Nieprawidlowe wspolrzedne. Podaj jeszcze raz') print('Ups! Nieprawidlowe wspolrzedne. Podaj jeszcze raz')
if wykonano_ruch: if wykonano_ruch:
break break
elif opcja == 2:
x = -1
def wykonaj_atak():
wykonano_ruch = False
while True: while True:
wyswietl_jednostki() wyswietl_jednostki()
x = int(input('Kogo atakujesz?')) indeks_celu = int(input('Kogo atakujesz?'))
if waliduj_cel(x): if waliduj_cel(indeks_celu):
wykonano_ruch = plansza.wykonaj_atak(jednostka, jednostki[x]) wykonano_ruch = plansza.wykonaj_atak(jednostka, jednostki[indeks_celu])
else: else:
print('Ups! Nieprawidłowy cel. Podaj jeszcze raz') print('Ups! Nieprawidłowy cel. Podaj jeszcze raz')
if wykonano_ruch: if wykonano_ruch:
break 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()