From 582b86edd16225b74ea7a9fd787c9feb56da73a4 Mon Sep 17 00:00:00 2001 From: s500512 Date: Wed, 11 Dec 2024 16:47:38 +0100 Subject: [PATCH] Update --- jednostka.py | 2 +- main.py | 108 +++++++++++++++++++++++++++++---------------------- 2 files changed, 63 insertions(+), 47 deletions(-) diff --git a/jednostka.py b/jednostka.py index 0edfadd..52d9ef0 100644 --- a/jednostka.py +++ b/jednostka.py @@ -1,4 +1,4 @@ -from abc import ABC, abstractmethod +from abc import ABC class Jednostka(ABC): diff --git a/main.py b/main.py index 903da56..ef7d918 100644 --- a/main.py +++ b/main.py @@ -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()