![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%) ![]() ![]() |
Hej, tworzę stronę gdzie każdy ma daną ilość punktów, wygranych, przegranych i wyjść z gry.
Stworzyłem jak na razie takie założenia, wygrany ma +5, przegrany -3, osoba która wyszła z gry podczas jej trwania -10, w grze zawsze występuje 5 osób, istnieją dwie drużyny każda po 5. Gracze wchodzą do gry i po uzbieraniu 10 gra automatycznie jest stratowana, a oni przydzielanie dowiedzionych drużyn tak by gra była jak najbardziej zrównoważona. Nie koniecznie wiem jaki algorytm można by zastosować by teamy były jak najbardziej zrównoważone, można by przydzielać graczy w systemie 1-2-2-2-2-2-1, od największej ilości punktów do najmniejszej, lecz jeśli pierwszy gracz posiada 2000pkt, a reszta ~1200pkt to teamy nadal nie będą w najlepszej kondycji. Przydzielanie najlepszego do pierwszego teamu, a następnie reszty od najlepszego do najgorszego do drugiego aż do wyrównania różnicy też może nie zawsze dać dobry rezultat. Trzeba pamiętać, że nawet najlepszy gracz z gromadą osób nie umiejących grać nie da sobie rady z samymi średnio zaawansowanymi. Gracze z małą ilością wygranych (procentowo) lub z małą ilością punktów powinni mieć jakieś inne/specjalne uprawniania do rozkładania ich po równo w drużynach. Co o tym myślicie? Moim zdaniem najlepszym pomysłem na daną chwilę jest dodanie najlepszego do #1, reszty do #2 do czasu gdy ich pkt nie będzie większe nić #1, a jeśli go przewyższy znów do #2 na identycznych zasadach, gracze rozdawani od największej ilości punktów, jeśli w końcowym rozrachunku drożyny będą różniły się większą ilością pkt. niż 10% (liczba strzelona nieco w ciemno) gra może zostać automatycznie zamknięta, a gracze proszeni o wejście do nowej. Moim pytaniem związanym z php, a w zasadzie z samym algorytmem było by jak coś takiego najlepiej zapisać pamiętając o ograniczeniach z strony php, kod będzie w przeszłości odpalany co kilkanaście sekund więc jego optymalność, a w zasadzie optymalność algorytmu musi być dosyć spora, macie jakiś pomysł na spisanie go lub opracowanie innego? Mam nadzieje, że nie namieszałem za mocno. (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 333 Pomógł: 137 Dołączył: 25.03.2008 Skąd: jesteś?? Ostrzeżenie: (0%) ![]() ![]() |
Sporo tego napisałeś i na pewno masz rację, ale nie koniecznie wszystko o czym piszesz powinno się znaleźć w tym temacie - to moja wina nie określiłem o jaką grę chodzi i większość z Was potraktowała to jako grę gdzie mam wpływ na skile czy wynkiki meczu.
Pewnie mało osób wie, że W3 posiada ciekawy dodatek o nazwie DotA, powstaje masę lig gdzie można się zarejestrować i grać. Tutaj gracze wychodzący są mocno karani, a i Teamy są dosyć wyrównane. Wpadłem na pomysł stworzenia czegoś w typie dota-league.com, tylko mam ciekawy pomysł na ulepszenie tego typu gry. Mianowicie tutaj gracze hostują gry, a w moim zamyśle gra jest hostowana automatycznie na specjalnym serwerze, dzięki temu gracze nie narzekają na lagi, a i eliminuje to problem braku hostów, czy ich małych kłamstw jak np. nie są z kolegą w teamie. Dla nie uświadomionych, batelnet musi mięć odblokowany port by móc hostować i mimo to że wydaje się być abstrakcyjnie dla mnie osobiście nie posiadanie własnego IP to nie wszyscy mają taką możliwość, więc średnio co 4 gracz może zakładać grę. Posiadam program do hostowania i startowania gier więc teraz piszę algorytm który umożliwi mi tworzenie wyrównanych teanów. Niestety nie mam wpływu na cenę, ani żadne inne aspekty gry, gra za każdym startem rozpoczyna się od nowa, więc takie wybicie się w kosmos za pomocą błędnego algorytmu nie jest tak do końca tutaj możliwe. To co osiąkniemy w jednej rozgrywce przepada, jedynie nabity skil zostaje. :-) @everth - sprawdziłem Twój algorytm i niestety okazuje się błędny w niektórych przypadkach, a tu jeden z nich - http://www.dota-league.pl/index.php?i=5. Zamiana najgorszego gracza z jakimkolwiek jest nie opłacalna, ale zamiana najmocniejszych już tak. Ehhh, sporo nad tym siedziałem i trochę żałuję, że okazał się mieć wady. get[i], opisuje ilość podmian jaka ma być wykonana - mój system zatrzymywania operacji gdy teamy są już najbardziej wyrównane jak się da również zawodzi w tym przypadku więc zostaje ręczne podanie ilości przeniesień. @thek - myślisz, że Twój sposób na podział graczy jest najlepszym z możliwych? - W kolejności od najmocniejszego do najsłabszego - P1 do #1 - P2 do #2 - P3 do #2 - P4 do #1 jeśli #2 ma więcej pkt niż #1 inaczej do #2 - p5-P10 tak jak i P4 - jeśli sloty w jakimś teamie się skończą reszta z automatu do drugiego Edit: (IMG:http://lh5.ggpht.com/_zBhht4RSqDo/TGXcIB-rWkI/AAAAAAAAApI/ATCmWqGKeWo/Bez tytuĹu.jpg) Udowodnienie błędu algorytmu omawianego kilka sekund wcześniej. Wymiana 4 plajerów znacząco poprawi równowagę... (chyba, że coś źle obliczałem - ręcznie) ;/ Ten post edytował ShadowD 14.08.2010, 00:59:51 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 13:50 |