Système de classement

Signaler
Messages postés
1
Date d'inscription
jeudi 21 août 2014
Statut
Membre
Dernière intervention
21 août 2014
-
 geegee -
Bonjour tous le monde!
Je voudrais savoir si vous pouviez m'éclairer sur ce sujet.
Alors je souhaiterai avoir un moyen de coder une sorte de classement en temps réelle. Un classement que je pourrai installer de sorte les meilleurs score d'un jeu ainsi que le classement de chaque personne ayant participer au jeu que je voudrais mettre en place.
J'espère avoir été clair, merci pour votre aide.

2 réponses

Messages postés
1782
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
14 janvier 2021
115
bonjour

pour la partie navigateur je pense a l'ajax mais pour ce qui est des score sa ce passe coté serveur avec le langage serveur comme le php pour ce qui est de la reception et l'envoie des donné couplé a une base de donné comme mysql pour la conservation des scores
var K_VALUE = 64;

var RANGE = 400;



function easy_elo(elo1,elo2,result)
{
 return elo_calculator((result?1:0),(result?0:1),elo1,elo2);
}

function elo_calculator(score1,score2,e1,e2)
{
 var elo1 = parseInt(e1);
 var elo2 = parseInt(e2);
 var e;
 var r = [];
 if(score1 != score2) // le match n'est pas une égalité, il existe un vainqueur
 {
  if(score1 > score2) // le vainqueur est l'entité 1
  {
   e=K_VALUE-Math.round(1/(1+Math.pow(10,((elo2-elo1)/RANGE)))*K_VALUE);
   r['new_elo1'] = elo1 + e;
   r['new_elo2'] = elo2 - e;
  }
  else    // le vainqueur est l'entité 2
  {
   e=K_VALUE-Math.round(1/(1+Math.pow(10,((elo1-elo2)/RANGE)))*K_VALUE);
   r['new_elo1'] = elo1 - e;
   r['new_elo2'] = elo2 + e;
  }
 }
 else     // le match est une égalité, il n'existe pas de vainqueur
 {
  if(elo1 == elo2) // les deux entités ont le même classement elo
  {
   r['new_elo1'] = elo1;
   r['new_elo2'] = elo2;
  }
  else    // les deux entités n'ont pas le même classement elo
  {
   if(elo1 > elo2) // l'entité 1 a un classement elo plus élevé
   {
    e=(K_VALUE-Math.round(1/(1+Math.pow(10,((elo1-elo2)/RANGE)))*K_VALUE))-(K_VALUE-Math.round(1/(1+Math.pow(10,((elo2-elo1)/RANGE)))*K_VALUE));
    r['new_elo1'] = elo1 - e;
    r['new_elo2'] = elo2 + e;
   }
   else   // l'entité 2 a un classement elo plus élevé
   {
    e=(K_VALUE-Math.round(1/(1+Math.pow(10,((elo2-elo1)/RANGE)))*K_VALUE))-(K_VALUE-Math.round(1/(1+Math.pow(10,((elo1-elo2)/RANGE)))*K_VALUE));
    r['new_elo1'] = elo1 + e;
    r['new_elo2'] = elo2 - e;
   }
  }
 }
 r['change1'] = ((r['new_elo1'] - elo1) > 0) ? ('+'+(r['new_elo1'] - elo1)) : ((r['new_elo1'] - elo1)+'');
 r['change2'] = ((r['new_elo2'] - elo2) > 0) ? ('+'+(r['new_elo2'] - elo2)) : ((r['new_elo2'] - elo2)+'');
 return r;
}