Forum prywatne studentów IS AGH
Administrator
----------------------------------------------------------------------------------------------------------
Surowce----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
ISurowiec
Abstrakcyjna klasa reprezentujaca dowolny surowiec
ISurowiec1: ISurowiec
ISurowiec2: ISurowiec
ISurowiec3: ISurowiec
-----------------------------------------------------------------------------------------------------------
Budynki----------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
IBudynek:
Abstrakcyjna klasa reprezentujaca dowolny budynek dowolnej rasy
Atrybuty:
-wytrzymałość (hp)
-obrona przed atakiem bezpośrednim
-obrona przed atakiem z dystansu
-czas budowania
-wymagane surowce
IBudynekRekrutujacy
Abstrakcyjna klasa reprezentujaca budynki w ktorych sie rekrutuje jednostki
Atrybuty:
-lista jednostek
IKoszary: IBudynekRekrutujacy
Abstrakcyjna klasa reprezentujaca budynek do rekrutowania jednostek naziemnych atakujacych bezposrednio
IStrzelnica: IBudynekRekrutujacy
Abstrakcyjna klasa reprezentujaca budynek do rekrutowania jednostek naziemnych atakujacych z dystansu
IDok: IBudynekRekrutujacy
Abstrakcyjna klasa reprezentujaca budynek do rekrutowania jednostek wodnych
ICentrum: IBudynek
Abstrakcyjna klasa reprezentujaca budynek główny
Atrybuty:
-ilość zapewnianych miejsc
IDom: IBudynek
Abstrakcyjna klasa reprezentujaca budynek który zwiększa maksymalną ilość miejsc
IWieza: IBudynek
Abstrakcyjna klasa reprezentujaca budynek obronny
Atrybuty:
-zasięg
-atak
ILaboratorium: IBudynek
Abstrakcyjna klasa reprezentujaca budynek do odkrywania ulepszeń cywilnych?
Atrybuty:
-lista ulepszeń
IKuźnia: IBudynek
Abstrakcyjna klasa reprezentujaca budynek do odkrywania ulepszeń wojskowych
Atrybuty:
-lista ulepszeń
IMagazyn: IBudynek
Abstrakcyjna klasa reprezentujaca budynek do ktorego znosi się surowce
-----------------------------------------------------------------------------------------------------------
Jednostki--------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
IJednostka
Abstrakcyjna klasa reprezentujaca dowolny jednostke dowolnej rasy
Atrybuty:
-wytrzymałość (hp)
-obrona przed atakiem bezpośrednim
-obrona przed atakiem z dystansu
-atak (bezpośredni)
-szybkość poruszania się
-wymagane surowce
ICywil: IJednostka
Abstrakcyjna klasa reprezentujaca dowolny jednostke cywilna
IZbieracz: ICywil
Abstrakcyjna klasa reprezentujaca dowolny jednostke zbierajaca surowce
Atrybuty:
-szybkosc zbierania surowców
IWojak: IJednostka
Abstrakcyjna klasa reprezentujaca dowolny jednostke wojskowa
ILomotnik: IWojak
Abstrakcyjna klasa reprezentujaca dowolny jednostke wojskowa atakujaca bezpośrednio
IDystansowiec: IWojak
Abstrakcyjna klasa reprezentujaca dowolny jednostke wojskowa atakujaca z odległości
Atrybuty:
-atak z odległości
-----------------------------------------------------------------------------------------------------------
Ulepszenia-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
CUlepszenie
Abstrakcyjna klasa reprezentujaca dowolne ulepszenie
Atrybuty:
-wymagane surowce
-czas "odkrywania"
-działanie
CUlepszenieCywilne: CUlepszenie
Abstrakcyjna klasa reprezentujaca dowolne ulepszenie cywilne
CUlepszenieWojskowe: CUlepszenie
Abstrakcyjna klasa reprezentujaca dowolne ulepszenie wojskowe
-----------------------------------------------------------------------------------------------------------
Informacje, uwagi, pytania--------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
Każda rasa tworzy konkretne jednostki/budynki poprzez dziedziczenie odpowiedniej klasy i implementacje jej metod wirtualnych
Wprowadzając podział na jednostki latające, ziemne i wodne, pasowało by mieć to jakoś uwzględnione w klasach. Można by to zrobić wprowadzając dodatkowe klasy CLatajaca, CPlywajaca i CChodzaca, i każda konkretna jednostka by dziedziczyła po 2 klasach: jedna to Łomotnik/Dystansowiec, a druga Latacz/Pływacz/Chodziarz. Nie wiem tylko czy to ma jakiś większy sens i czy nie skomplikuje to za bardzo projektu.
Można wprowadzić klasę najbardziej podstawową CCokolwiek, po ktorej dziedziczą poszczególne klasy bazowe budynków, jednsotek itd. Pytanie tylko czy to ma sens?
Obecnie jest tylko jedna jednostka cywilna (do zbierania) i wprowadzenie klasy CCywil może sie wydawać sztuczne, ale umożliwia to dodanie kolejnych jednostek jak nam na to przyjdzie ochota. Jak zostawimy tylko zbieracza to mozna usunąc.
Założyłem, że jednoski atakujące z dystansu mogą również atakować bezpośrendio.
Nie mam pomysłu jak rozwiązać problem ulepszeń, a dokładniej jak opisać działanie. Jak rozróżnić że to daje bonus do ataku, a to do szybkości zbierania surowców, a jeszcze jakieś powoduje szybsze tworzenie jednostek. Nie wiem czy wprowadzać jakies rozróżnienie na ulepszenie jednostek i budynków.
Nie napisałem jeszcze jakie metody powinny mieć klasy, ale tego mi się już dzisiaj nie chciało Dopisze "wkrótce"
Wybaczcie że takie długie i że nie chciało mi się rysować diagramu dziedziczenia do tego, to także "wkrótce" się zrobi
Offline
Administrator
Rozmawiałem z Jackiem i mam parę pomysłów, po częsci przedyskutowanych.
- Co do ulepszeń, propozycja jest taka żeby zrobić klasy Rasa1, Rasa2 i żeby ulepszenia były metodami tej klasy, a także żeby te klasy zawierały listę budynków i jednostek dla poszczególnych klas.
- Imo dobrym pomysłem jest zrobinie osobnych klas dla jednostek naziemnych, latających i pływających, wtedy będziemy musieli ruchem jednostek przejmować się tylko w tych 3 klasach, reszta sobie podziedziczy.
- Proponuje zrobić nadrzsendą klasę, np. Render, która nam bedzie odpowiadała za wyświetlenie jednostki na planszy, pola powiedzmy jakiś wektor pozycji, jakaś grafika, metoda publiczna rysuj.
Jak ktoś może to niech wydrukuje ten temat na dzisiejsze spotkanie.
Offline
Administrator
Wydaje mi się że jednostki naziemne w zupełności by wystarczyły. Nie ma co szaleć
Offline
Administrator
Ale jednostki naziemne, są najtrudniejsze do napisania, jak już to bedziemy mieli to napisanie klas jednostki latającej i pływającej to będzie pikuś.
Nie koniecznie musimy od razu implementowac te jednostki ale takie rozwiązanie z tym podziałem pozwoli nam je ew. łatwo dodać.
Offline