http://media.gizmodo.co.uk/wp-conten...lp-fiction.jpg
Tablica wskaźników Gracz?
Może C++0x11 czy jak to się tam zwie ma jakies lepsze rozwiązanie
Wersja do druku
http://media.gizmodo.co.uk/wp-conten...lp-fiction.jpg
Tablica wskaźników Gracz?
Może C++0x11 czy jak to się tam zwie ma jakies lepsze rozwiązanie
@kuba_k31 ;
http://ideone.com/yYcbfk
Jak chcesz dynamicznie dodawać aktorów do gry (npc, potworki czy inne gówna) to pomyśl nad std::vector.
Nie wiem czy temat mojego posta podchodzi pod temat tego wątku, ale spróbuję:
Macie jakiś program/apkę do komunikacji między członkami grupy projektowej? Mam grupę 7-osobową w projekcie na studiach, ale nie każdy ma skype, nie każdy gg i nie każdy facebooka... A i tak wolałbym pisać na czymś w rodzaju miniforum, żeby było łatwo się połapać kto co i kiedy napisał i co/kiedy zamierza zrobić itd.
Jak dla mnie najlepsze do czegoś takiego jest www.trello.com. Można założyć konto na fejkowego maila nawet. Tworzysz sobie taka jakby tablice z karteczkami, do każdej możesz przydzielić jakiegoś pracownika, deadline czy kategorię.
Przykład dosyć dużego boarda: https://trello.com/board/a-problem-a...bf4c914d0137f8
Jakikolwiek system do zarządzania projektami, w pracy używamy JIRY, ale Tobie polecę jakiś darmowy odpowiednik, nazw niestety nie znam :D
C++ nie obsługuje takich pokracznych rzeczy. Da się to pewnie zrobić makrami, ale nie jest to dobre rozwiązanie. Preprocessor nie ma pisać za Ciebie kodu. Tutaj najładniej byłoby to zrobić wektorem/zbiorem/tablicą. Na przykład tak:
Ze zbiorem analogicznie, tylko zamień vector na set i zamiast push_back daj insert. Set ma dużą stałą jeżeli chodzi o zajmowane miejsce i wolniej działa, więc raczej słabo się tu spisze.Kod:std::vector<Fred> v;
for (unsigned int i = 0; i < n; ++i) {
v.push_back(Fred(mój_argument));
}
for (Fred& f : v) {//C++11, można zrobić to iteratorami, ale tak jest ładniej. & skutkuje tym, że f jest referencją, a nie skopiowanym obiektem.
f.zrob_cos();
}
Na tablicy.
Kod:Fred *moja_tablica = new Fred[n] //new wywoła domyślny konstruktor na każdym z elementów, więc trzeba jeszcze wywołać init na każdym, init oczywiście musisz samemu napisać.
//oczywiście na stercie, bo stos jest od innych rzeczy
for (Fred *iterator = moja_tablica; iterator != moja_tablica + n; ++iterator) {
iterator->init(argument);
iterator->cośtam();
}
//zwolnienie pamieci
delete[] moja_tablica;
Może napisze. Zrobiłem to jednak tablicą, w ten sposób:
i wydaje mi się że wszystko działa, więc na razie rozwiązuje to mój problem ; pKod:Gracz * gracz[20];
for (int i = 1; i <= ilosc_graczy; i++)
{
gracz[i] = new Gracz;
}
Wystarczy cofnąć wskaźnik do tablicy o jeden do tyłu (--gracz).