.idea | ||
jednostka.py | ||
kusznik.py | ||
lucznik.py | ||
main.py | ||
piechur.py | ||
plansza.py | ||
README.md | ||
rycerz.py |
Zadanie projektowe: Taktyczna gra turowa
Zaprojektuj i zaimplementuj mechanizm walki w grze taktycznej na planszy 5x5.
Gra nie musi posiadać graficznego interfejsu użytkownika, ani mechanizmu wprowadzania danych przez użytkownika.
Obiekty gry mogą być tworzone wprost w kodzie (main).
Ważne jest jednak by nie były to zmienne globalne itp. a należy skorzystać z klas.
Część 1: System jednostek bojowych
-
Stwórz abstrakcyjną klasę bazową Jednostka z podstawowymi atrybutami:
- zdrowie (punkty życia)
- siła ataku
- zasięg ataku (liczba pól)
- szybkość ruchu (ilość pól na turę)
- operacje otrzymaj_obrazenia, czy_zyje
-
Zaimplementuj klasy pochodne reprezentujące różne typy jednostek:
- Rycerz - silny w walce wręcz, duże zdrowie, zasięg 1
- Lucznik - atak dystansowy, małe zdrowie, zasięg 3
- Kusznik - średni atak dystansowy, średnie zdrowie, zasięg 2
- Piechur - zbalansowany, średnie zdrowie, zasięg 1
Część 2: System planszy
- Zaimplementuj klasę Plansza reprezentującą pole bitwy:
- Plansza 5x5 pól
- Możliwość dodawania i usuwania jednostek
- Sprawdzanie kolizji i zajętości pól
- Wyświetlanie aktualnego stanu planszy
- Zastosuj wzorzec Singleton dla planszy
Część 3: System walki
- wykonajAtak(atakujacy, cel)
- sprawdzZasieg(atakujacy, cel)
- obliczObrazenia(atakujacy, cel)
Wymagania implementacyjne
- Zastosowanie zasad SOLID:
- Implementacja prostego interfejsu tekstowego:
- Wyświetlanie planszy w konsoli
- Pokazywanie stanu jednostek