본문 바로가기
프로그래밍/Pawn

[PAWN/SAMP] 랭킹 알고리즘

by 알용 2012. 11. 19.
반응형

stock UpdateRank()
{
  new rank[MAX_PLAYERS];

  // 배열 내 값들 전부 1로 초기화

  for (new i = 0; i < MAX_PLAYERS; i++)
  {
    for (new j =0; j < MAX_PLAYERS; j++)
    {
      if (GetPlayerScore(i) < GetPlayerScore(j))
      {
        rank[i]++;
      }
    }
  }
}

 
 
순전히 제 생각이지만, 이 알고리즘이 가장 비효율적이면서도 가장 간단한 랭킹 결정 알고리즘이 아닐까 생각해봅니다.
처음에 모든 플레이어의 랭킹값을 1위로 설정하고,
자신보다 킬수(상황에 따라 점수라던지 기타 등등이 되겠죠)가 높은 사람이 탐색되었을 경우,
자신의 랭킹값을 1씩 증가시키는 알고리즘입니다.
킬수가 동일한 사람이 있다면, playerid(이 또한 상황에 따라 어시스트라던가 등등이 되겠죠)가 상위 랭킹을 결정합니다.
 

 

반응형