Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 23.10.2006 Ostrzeżenie: (0%)
|
Witam!
Wiem, że jest już jeden temat o tym samym zagadnieniu, lecz dyskusja tam jest według mnie bez sensu. Do rzeczy: piszę aktualnie dość zaawansowaną grę i chciałbym, żeby była jak najbardziej elastyczna. W grze jest kilka ras (każda ma inne ceny budynków, produkcję itp... ) oraz niektóre parametry są zależne od pory roku (jak na przykład produkcja). Wydaje się, że wystarczy zastosować dekorator, lecz sprawa jest trochę bardziej skomplikowana. Różne pory roku w mniejszym lub większym stopniu modyfikują parametry u różnych ras. Na chwilę obecną było mnóstwo różnych klas w stylu WinterCarthageBakery, SpringCarthageBakery... więc w finalnej wersji wyszłoby mi ponad 600 klas co jest niedopuszczalne i nieelastyczne. Kolejnym pomysłem było coś takiego: Każda klasa budynku dla danej rasy dziedziczyłaby po jakiejś klasie abstrakcyjnej w której zaimplementowany byłby mechanizm wyboru odpowiedniej zmiennej z danymi (tzn. czy zimową czy może letnią tablicę z kosztami). W ten sposób ograniczyłbym liczbę klas do ok. 150, lecz rozwiązanie znowu nie jest zbyt elastyczne. Może macie jakiś propozycje, jak zbudować elastyczniejszy system? Może trzymać ceny w bazie danych i cache'ować tylko te dla danej pory roku? Czekam na wszystkie opinie na ten temat. Ten post edytował KOMPsognat 10.02.2007, 19:34:20 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%)
|
Kilka przemyslen, moze cie gdzies doprowadza.
[przyjmuje do obliczen 4 pory roku, 3 klasy] 1. pora roku nie moze byc zapisana w klasie budynku, bo gdy zmieni sie pora roku ot bedziesz musial wymienic obiekt budynku (zniszczyc stary utworzyc nowy), czyli SpringCarthageBakery odpada. 2. jak bardzo sa podobne sa do siebie budynki? Wszystkie maja tylko atrybut Produkcja? czy roznia sie ? Produkcja Tego, Prod. Tamtego,inny budynek Tego nie produkuje? 3. jak bardzo roznia sie od siebie budynki roznych ras? To sa te same budydnki rozniace sie tylko wielkoscia produkcji? czy kazda rasa ma specyficzne budynki, o roznej produkcji? 4. jak bardzo rozne sa reguly modyfikujace produkcje? Dla danej pory roku i danej rasy modyfilkator dla wszystkich budynkow bedzie taki sam (4x3 klas) czy inny (4x3xilosc_rodzai_budynkow)? 5. przechowywanie modyfikatorow (dla pogody i rasy) w samym budynkow tez odpada: dodanie nowej rasy to wyedytowanie wszystkich klas budynkow // 6. Wlasciwie wszytko zalezy od jednolitosci budynkow i jednolitosci wyznaczania modyfikatorow. Jesli budynki sa identyczne a modyfikatory wyrazaja sie "pojedynczym" prostym wzorem i wtedy:
A jak to w samej bazie wyliczac? -- woooo, nie wiem |
|
|
|
KOMPsognat Gra internetowa - hierarchia klas 3.02.2007, 13:20:54
NuLL Cytatwyszłoby mi ponad 600 klas co jest niedopuszc... 3.02.2007, 15:03:03
KOMPsognat Ech... złe słowo Ale nieelastyczne jak ... 3.02.2007, 15:23:48
KOMPsognat Ad.1. Czemu odpada? Mam powiedzmy porę roku pobran... 3.02.2007, 18:17:48
dr_bonzo 1-6.
Sorry -- myslalem za bardzo OOP i o aplikacj... 3.02.2007, 19:45:05
KOMPsognat Tak też od początku myślałem, ... 3.02.2007, 20:22:46
dr_bonzo Dekorator to nie bedzie, bo w dekoratorze wszystki... 4.02.2007, 12:47:20
KOMPsognat Ad.1. Równie dobrze można to nazwać Wint... 4.02.2007, 14:08:55
Secator Swoją drogą w nie lepiej stosować czegoś w stylu:
... 6.02.2007, 02:16:45
KOMPsognat Napisałem, że modyfikatory są zróżnicowane. Nie ma... 6.02.2007, 19:19:11
KG- No i to jest wg mnie najlepsze rozwiązanie, bawien... 8.02.2007, 21:22:31
Secator CytatNapisałem, że modyfikatory są zróżnicowane. N... 8.02.2007, 23:05:40
KOMPsognat Hehe... akurat w tym przecież nie ma nic trud... 9.02.2007, 08:17:41
bacca Miałem kiedyś taki problem. Jeśli mogę jakoś pomóc... 9.02.2007, 23:57:39
KOMPsognat Chyba zostanę przy swoim pomyśle, gdyż nie będzie ... 10.02.2007, 08:00:00
bacca Przeczytaj jeszcze raz punkt 3. i 4. Naprawde da s... 11.02.2007, 11:09:35
KOMPsognat No to muszę przyznać, że Twój sposób drastycznie r... 11.02.2007, 12:33:17
Ace heh... Nie po to sa bazy danych, zeby zapisywac po... 11.02.2007, 17:28:51
KOMPsognat I łatwo zerżnąć komputer. Jeżeli mam wykonywać ok.... 11.02.2007, 19:44:15
Ace Przeczytaj dokladnie to co napisalem.
Baza to po... 12.02.2007, 13:22:40 
KG- Cytat(Ace @ 12.02.2007, 13:22:40 ) Pr... 28.02.2007, 14:23:48
KOMPsognat Racja. Nie dopatrzyłem tego cache :]
Nie musz... 13.02.2007, 19:26:35
dr_bonzo CytatTeraz musisz połączyć się do 500 serwerów, wy... 28.02.2007, 14:57:51
Turgon Szczerze powiem jak update się robi, to tak c... 28.02.2007, 15:17:26
KOMPsognat No właśnie ten cennik będzie do... 28.02.2007, 20:39:46
Ace Hehe, a powiedz mi jaka jest roznica miedyz wykona... 1.03.2007, 13:37:40
KG- CytatTrzymanie wszystkiego w plikach textowych - u... 2.03.2007, 17:40:55
Ace Czyli robiłeś testy i mówisz, że baza nie wytrzyma... 5.03.2007, 09:46:07
KG- Wytrzyma czy nie wytrzyma to zbyt generalne poj... 7.03.2007, 14:33:19
Vogel MySQL lepiej sobie odpuścić do takich projektów. P... 7.03.2007, 15:52:21
mike_mech ~Vogel przerzuć się na wspomnianego przez siebie M... 7.03.2007, 18:00:18 ![]() ![]() |
|
Aktualny czas: 26.12.2025 - 02:14 |