projekt_gra_turowa/main.py

94 lines
2.5 KiB
Python
Raw Normal View History

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 = []
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-09 19:29:11 +01:00
if __name__ == '__main__':
plansza = Plansza()
2024-12-11 16:21:28 +01:00
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_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
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')
2024-12-09 20:21:38 +01:00
2024-12-11 16:21:28 +01:00
if wykonano_ruch:
break
elif opcja == 2:
x = -1
while True:
wyswietl_jednostki()
x = int(input('Kogo atakujesz?'))
2024-12-09 20:21:38 +01:00
2024-12-11 16:21:28 +01:00
if waliduj_cel(x):
wykonano_ruch = plansza.wykonaj_atak(jednostka, jednostki[x])
else:
print('Ups! Nieprawidłowy cel. Podaj jeszcze raz')
2024-12-09 20:21:38 +01:00
2024-12-11 16:21:28 +01:00
if wykonano_ruch:
break