diff --git a/README.md b/README.md new file mode 100644 index 0000000..3ccce87 --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +# 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 +1. 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 + +2. 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 +1. 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 +2. Zastosuj wzorzec Singleton dla planszy + +## Część 3: System walki +* wykonajAtak(atakujacy, cel) +* sprawdzZasieg(atakujacy, cel) +* obliczObrazenia(atakujacy, cel) + +## Wymagania implementacyjne +1. Zastosowanie zasad SOLID: +2. Implementacja prostego interfejsu tekstowego: + * Wyświetlanie planszy w konsoli + * Pokazywanie stanu jednostek \ No newline at end of file