Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: (chyba) Bardzo ciężki skrypt
Forum PHP.pl > Forum > PHP
Ethel
Witam, mam taki problem, otóż próbuje robić gre internetową, strategiczną i chce zrobić właśnie skrypt na toczenie się bitew. Np. jest taka sytuacja:
Mam 4 rodzaje jednostek, każda jednostka ma określony atak (A) i obronę (B ), np.
1 - 10A, 20B
2 - 20A, 35B
3 - 15A, 100B
4 - 75A, 30B

Następuje atak:
Gracz atakujący wysłał taką armie:
1 - 100 Jednostek
2 - 50 Jednostek
4 - 10 Jednostek
Gracz broniący posiada taką armie:
2 - 30 Jednostek
3 - 20 Jednostek

W sumie gracz Atakujący wysłał 160 Jednostek, Gracz broniący broni się 50 Jednostkami, więc w ciągu jednej tury (wymiany ciosów), gracz atakujący zadaje 160 ciosów, gracz broniący 50 ciosów. Gdybym miał tylko jeden typ armi nie byłoby problemu, ale mam kilka typów i chciałbym aby gracz atakujący w tych 160 ciosach miał 100 ciosów o sile 10A, 50 ciosów o sile 20A, 10 ciosów o sile 75A (i podobnie z graczem broniącym). Chciałbym aby jeden cios był wymierzony tylko w jedną jednostke (losowo), i jeśli jednostka ma więcej obrony niż wynosi atak, to nie ulega zniszczeniu. Oczywiście jeśli jedna strona ma więcej jednostek (czyli zadaje więcej ciosów) niż ma przeciwnik, to na jedną jednostke przeciwnika może spaść kilka ciosów w jednej rundzie. Bardzo zależy mi też na czymś takim, żeby stan zdrowia (ilość pozostałych punktów obrony) jednostek był zapisywany, niewiem czy tak sie da zrobić :/ Wyjaśnie jeśli ktos nie rozumie - jeśli spotkała sie jednostka 3 z jednostką 4, obie miały pełne zdrowie, wymieniły ciosy i po pierwszej rundzie jednostce 3 pozostało 25 obrony, a jednostce 4 15 obrony.


Jeśli jest to bardzo pogmaftane to napiszcie czego nie rozumiecie, wyjaśnie. Powiedzcie czy to wogóle jest możliwe biggrin.gif



P.S.
Może nie wysyłajcie odrazu gotowych skryptów, tylko poprostu powiedzcie w jaki sposób to napisać - jeśli będe wiedział z czym kombinować, to wole sam to napisać, bo nigdy mi dobrze nie szło rozszyfrowywanie obcych skryptów.
sztosz
Ja to widze jako tablice smile.gif Albo Obiekty, albo połączenie winksmiley.jpg

Każda jednostka to Obiekt który ma własne atrybuty (atak, obron, zycie, etc) i metody typu, GetAtakValue(), GetObronaValue() etc.

Do tego dwie tablice jedna $atakujacy i druga $obronca. Na poczatku bitwy tworzymy odpowiednie obiekty w tablicach (tyle ile trzeba) a potem wybieramy dowolny element z jednej tablicy z dowolnym z drugiej. Porównywujemy wartości ataku i obrony. W razie zadańia jakichś obrażeń obnizamy ilość HP, jak spada do zera, to wyrzucamy dany obiekt z tablicy i niszczymy go. I to w petli albo... sam nie wiem jak winksmiley.jpg
ActivePlayer
proponuje, kartke, olowek, siądz i przemysl algorytm. bo problem masz z nim, jak on juz bedzie zaprojektowany to z implementacją sobie poradzisz.
bela
Cytat(sztosz @ 2006-01-14 13:19:48)
i metody typu, GetAtakValue(), GetObronaValue() etc

Nie mogłem się powstrzymać.

O lol, zdecyduj się na jeden język i bądź konsekwentny, bo to po prostu brzmi śmiesznie winksmiley.jpg
sztosz
@bela: Masz rację winksmiley.jpg Strasznie głupio to brzmi biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.