projekt_gra_turowa/main.py
2024-12-11 16:47:38 +01:00

110 lines
2.4 KiB
Python

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()