Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [algorytm]Podział graczy po ilości pkt
ShadowD
post
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)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
toel
post
Post #2





Grupa: Zarejestrowani
Postów: 97
Pomógł: 11
Dołączył: 2.02.2010

Ostrzeżenie: (0%)
-----


Taki algorytm mi wpadł do głowy - na razie wydaje mi się logiczny, ale sam oceń.



Dzielisz losowo na 2 drużyny po 5.

Teraz sprawdzasz, w której jest większa suma punktów.

Sprawdzasz różnicę między drużynami.

Dodajesz ilosc punktów najsłabszego gracza ze słabszej drużyny do tej różnicy.

Dzielisz całość na 2 i w mocniejszej drużynie szukasz osoby punktowo najbardziej zbliżonej do tego wyniku.

Wymieniasz ją z najsłabszym graczem z drużyny "słabej".

I tak aż do momenty gdy ilość punktów w drużynach będzie równa (mało prawdopodobne) lub gdy teraz to drużyna słaba będzie mocna. Oznaczało by to, że nie ma już opcji podmian.


Wymyślone na szybko, teraz wydaje mi się ok, no i mam nadzieję, że w mairę sensownie to wytłumaczyłem (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

Posty w temacie
- ShadowD   [algorytm]Podział graczy po ilości pkt   12.08.2010, 15:35:08
- - Spawnm   Może daj tiery ? gracze z przedziału 1-100 , 101-2...   12.08.2010, 15:43:35
- - ShadowD   Głównym celem tego systemu ma być umożliwienie jak...   12.08.2010, 15:55:14
- - toel   Taki algorytm mi wpadł do głowy - na razie wydaje ...   12.08.2010, 16:05:45
- - everth   A może tak: Bierzemy środek rozkładu np. medianęNa...   12.08.2010, 16:52:16
- - Spawnm   to może idąc dalej tropem tierów nie dawać ich szt...   12.08.2010, 16:57:55
- - lobopol   Może głupie, ale: 1. drużyna pierwsza dostaje grac...   12.08.2010, 17:13:21
- - Crozin   1) Poziom zawodnika lepiej jest określać na podsta...   12.08.2010, 17:21:46
- - ShadowD   OKi, coś próbuję za waszych propozycji wybrać. Nie...   13.08.2010, 14:02:08
- - toel   [PHP] pobierz, plaintext  function getClosest...   13.08.2010, 14:13:59
- - ShadowD   W czystej postaci nie zadziała na moje potrzeby, a...   13.08.2010, 14:18:10
- - everth   Może ci się przyda, dla mnie działał dosyć szybko:...   13.08.2010, 17:11:55
- - thek   Ścisły podział punktowy uważam za nieco nieprecyzy...   13.08.2010, 22:33:45
- - ShadowD   Sporo tego napisałeś i na pewno masz rację, ale ni...   14.08.2010, 00:38:00
- - thek   Nie sądzę, że najlepszym, ale myślę, że jednym z p...   14.08.2010, 01:08:15
- - ShadowD   Tutaj można zauważyć błąd jaki występuje, sprawdza...   14.08.2010, 01:31:53
- - thek   Wymieniłeś nie 4 ale 2. Balans się zwiększył, ale ...   14.08.2010, 01:48:33
- - everth   Być może ten algorytm powinien (chyba) przybliżyć ...   14.08.2010, 05:01:34
- - thek   Everth... Algorytm w postaci jaką podałem i jaką p...   14.08.2010, 11:47:48
- - everth   @thek - masz jak zwykle rację Śpiący byłem i jak ...   15.08.2010, 04:26:38
- - thek   Owszem. Algorytm w przypadku bardzo odstającego gr...   15.08.2010, 12:42:28


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.09.2025 - 17:14