Posts: 716
Threads: 55
Joined: Jul 2007
Reputation:
0
Как выбрать 10 лучших игроков на сервере? Например по фрагам.
Есть функция которая выбирает лучшего игрока, но там ппц строчек на 150 выходит выяснение 10 лучших игроков. Хотелось бы как нибудь попроще.
Posts: 1,427
Threads: 27
Joined: Jul 2007
Reputation:
0
в полезных функциях была сортировка чисел в массиве методом пузырька.. пойдет? (:
Posts: 716
Threads: 55
Joined: Jul 2007
Reputation:
0
дай линк на сообщение, посмотрим что там.
Posts: 1,659
Threads: 17
Joined: Sep 2008
сами напишите сортировку
)) лано я ща сам напишу
Posts: 1,427
Threads: 27
Joined: Jul 2007
Reputation:
0
Надо покопать инет, самая быстрая сортировка должна же быть..
Posts: 438
Threads: 8
Joined: Nov 2007
Reputation:
0
у меня на сервере данные по 100 местам хранятся в файле, потом подгружаются в массивы.
при дисконнекте игрока проверяется его положение по фрагам\смертям и.т.п. в соответствием с данными в массивах)
Posts: 1,659
Threads: 17
Joined: Sep 2008
как и обещал:
Code:
for(i=0;i<COUNT;i++)
{
for(j=0;j<COUNT-1;j++)
{
if(massiv[j]>massiv[j+1])
{
c = massiv[j];
massiv[j] = massiv[j+1];
massiv[j+1] = c;
}
}
}
скрипт для теста:
Code:
#include <a_samp>
#define COUNT 20
new massiv[COUNT] = {20,47,12,4,36,88,42,15,11,36,54,78,63,12,47,89,12,34,30,22}; // наш тестовый массив
main(){}
public OnGameModeInit()
{
new i,j,c;
for(i=0;i<COUNT;i++)
{
printf("%d:%d",i,massiv[i]);
}
// сортировка
for(i=0;i<COUNT;i++)
{
for(j=0;j<COUNT-1;j++)
{
if(massiv[j]>massiv[j+1])
{
c = massiv[j];
massiv[j] = massiv[j+1];
massiv[j+1] = c;
}
}
}
print("Отсортированный массив:");
// вывод
for(i=0;i<COUNT;i++)
{
printf("%d:%d",i,massiv[i]);
}
return 1;
}
этот способ не самый эффективный, но самый простой)
Posts: 1,427
Threads: 27
Joined: Jul 2007
Reputation:
0
Сходите в википедию на страницу "Быстрая_Сортировка".. да и ваще там куча алгоритомв описаны. Даж на С примеры есь, что как раз может тут подойти с небольшой переделкой под PAWN.