39 lines
1.6 KiB
Markdown
39 lines
1.6 KiB
Markdown
|
# Zadanie projektowe: Taktyczna gra turowa
|
||
|
|
||
|
Zaprojektuj i zaimplementuj mechanizm walki w grze taktycznej na planszy 5x5. <br />
|
||
|
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
|