Calcul des points : la faille

726 messaggio/i normal

Visualizzazione da 281 a 300 di 726 elementi
07/11/2009 16:23
#281

Arcade :

dans les deux cas faudrait recalculer des classements invisible mais bien réel, donc stocker des donnée, avoir un temps de calcul pour l'affichage de chaque page..

Y'a vraiment pas moyen de trouver une formule \"normalement calculée\" qui gère mieux les égalités? niconoe y était presque arrivé je crois, le seul problème était les différence de points trop élevé sur les gros jeux par rapport aux petits, et je pensais que BlackShark avait corrigé ce problème, alors qu'est-ce qui ne va pas maintenant?

Pour les formules de niconoe,tu veux  parler de celle en p4:
soient n le nombre de posteurs, i la position du joueur et d le nombre de membre dépassés
f(n,i,d) = (d+1)*(n-i+1)*10
         
Ou de celle en p7:
Soit f la fonction calculant le nombre de pointsRecord pour un membre donné sur un record donné
Soient n le nombre de joueurs sur un record, i la position d'un membre et e le nombre de personne ayant le même rang i que le membre donné,

On a : f(n,i,e) = (n-i+1)²-(e*(n-i+1))
             

 
niconoe, tu peux nous donner les variables qui sont facilement calculable, qu'on sache lesquels utiliser:
Pour l'instant:
-nb de joueur(s)
-place du joueur
-???


07/11/2009 16:25
#282
Arcade 1789 messaggi
celle où il a fait un screen d'exemple de classement. Mais bon ça, ca avait été refusé toute façon.
Ce que j'ai pas suivis c'est quel est le problème avec la dernière version du classement de black?
07/11/2009 16:34
#283

Arcade :

celle où il a fait un screen d'exemple de classement. Mais bon ça, ca avait été refusé toute façon.
Ce que j'ai pas suivis c'est quel est le problème avec la dernière version du classement de black?


Celle avec  le screen, c'est la p7.
           
La formule de BlackShark était très bien, mais il y a eu un quiproquo entre BlackShark et niconoe.
BlackShark utilisait la  variable n=nombre de score(s) différent(s). (qui neccessite plusieurs boucles) et niconoe utilisait n=nombre de score(s)
         
Détails des pages26-27
ça ne va pas du tout pour 10 joueurs (et donc pour moins de 10 joueurs), le 1er ne gagne que 600 pts de plus que le dernier alors qu'il y a 8 joueurs d'écart !!
aussi, être le dernier sur 50 rapporte autant de points qu'etre le 5ème sur 10 O_O

Je rappelle de plus que le but est de ne pas utiliser la variable \"nb scores différents\" parce qu'elle est galère à calculer du premier coup (sans faire une boucle qui peut s'avérer inutile) et donc que d'utiliser une variable de ce type augmenterait considérablement le temps de chargement de la page d'un gros classement.

J'ai peur pour finir avec ta formule lapogne qu'on atteigne un nombre de points inférieur ou égal à 0 dans certains rares cas..., ce qui n'est pas tip-top...  

 


Nitnek5091
Membre


Inscrit le : 25/03/2007
Nb messages : 186
Pays :  
Équipe : [Gamer]
Déconnecté :  
06/11/2009 17:55  

Mais pourquoi vous ne gardez pas le même système que maintenant en changeant juste la place par le nombre de personnes qu'on double?
(désolé si vous avez déjà répondu)  

 


niconoe
Webmaster Adjoint


Inscrit le : 16/10/2006
Nb messages : 479
Pays :  
Équipe : [Gamer]
Déconnecté :  
06/11/2009 18:03  

Parce que le systeme de maintenant est au points pour des petits classements mais pas au points pour de nouveaux gros classement où il est accusé de donner trop de points aux gros jeux
2èmement, je ne veux pas compter le nombre de personne qu'on double ni le nombre de posts différents ou autre encore, parce que c'est du traitement inutile et long et couteux en temps, donc il faut l'éviter.  

 


BlackShark
Ajouteur, Rédacteur


Inscrit le : 09/03/2008
Nb messages : 293
Pays :  
Équipe : [BF]
Déconnecté :  
06/11/2009 18:19  

Malheureusement pour différencier les records avec que des égalités et les records avec que des scores différents, je ne vois pas comment on peut se passer du \"nombre de scores différents\", c'est justement ça qui les différencie.  


07/11/2009 16:36
#284
Arcade 1789 messaggi
ah ok merci, bon ben on a encore du boulot du coup :p
07/11/2009 17:29
#285
Big Boss 800 messaggi
Pourquoi faire compliqué? Gardez la formule actuelle et forment une limite pour les dossiers liés combien de points peut gagner.
08/11/2009 12:27
#286
niconoe 3902 messaggi
Les données qui sont facilement calculables dans l'édition d'un classement c'est :
Le nombre de joueur(s)
L'ensemble des positions de chaque joueurs dans le classement
La position d'un joueur en particulier

Je crains qu'il n'y ai pas d'autre donnée facilement calculable pour l'instant mais je vais y réfléchir plus en détail
08/11/2009 14:03
#287
lapogne36 51 messaggi
et en prenant

m = Le nombre de joueur(s)
i = La position d'un joueur en particulier

il n'y a pas moyen de faire cet algorithme ? :

n=1 (initialisation)

pour j allant de 2 à m tant que n=1 faire
si position du joueur j différent de 1 alors n=j
fin de la boucle

ou c'est vraiment pas possible ? -_-
08/11/2009 14:06
#288
Est-ce que calculer la partie \"intermédiaire\"(que tu utilises en page 7) est facilement calculable (pour le script)
   
page7 (partie intermédiaire pour 50 joueurs)
http://img202.imageshack.us/img202/2118/testmq.jpg"
08/11/2009 14:34
#289
niconoe 3902 messaggi
Non, car il me faut les égalités pour y arriver, or, lorsque je parcours ma boucle de joueurs, quand j'arrive au rang 4 par exemple, le 1er joueur de ce rang 4, à ce moment précis, je ne sais pas avec combien de personne il est à égalité... Donc je ne sais pas calculer l'intermédiaire...

Il faut parcourir une fois la boucle pour savoir combien il y a d'égalité puis reparcourir la boucle avec les intermédiaire (car cette fois, on connais le nombre d'égalité) pour obtenir le nombre de points voulu... Or, faire 2 boucle = mauvais, il faut n'en faire qu'une
08/11/2009 15:03
#290

niconoe :

Non, car il me faut les égalités pour y arriver, or, lorsque je parcours ma boucle de joueurs, quand j'arrive au rang 4 par exemple, le 1er joueur de ce rang 4, à ce moment précis, je ne sais pas avec combien de personne il est à égalité... Donc je ne sais pas calculer l'intermédiaire...

Il faut parcourir une fois la boucle pour savoir combien il y a d'égalité puis reparcourir la boucle avec les intermédiaire (car cette fois, on connais le nombre d'égalité) pour obtenir le nombre de points voulu... Or, faire 2 boucle = mauvais, il faut n'en faire qu'une


Heu, on n'a pas du tout besoin des égalités?!!
Je parlais plus de\"intermediaire\" que de \"nb d'égalité\"
Calculer \"intermédiaire\" (ex à 51 joueurs) est simple (de tête ou sur excel), il suffit de faire  k=nb de joueur-place du joueur mais est-ce que c'est compliqué de le faire en script(pour ne pas ralentir la  page)?
Si oui, est-il possible de retrancher aux intermédiaires trouver, la valeur k du dernier (ici 5).
08/11/2009 15:10
#291
past*perfect 123 messaggi
Une petite question:
Est-ce que les égalités sont un problème en général, ou seulement pour les premières places?
Cela veut dire, est-ce qu'il vaut encore la peine de jouer un jeu comme ça:
http://www.vgr-fr.com/index.php5?c=record&id=10638
08/11/2009 15:16
#292
BlackShark 5954 messaggi
Est-ce qu'on pourrait faire un truc comme ceci ?

k = n    // n est le nombre de joueurs sur le record
While \"k>0\" & \"position du joueur k > 1\"
Calcul du nombre de pointsRecord du joueur à la position k avec la formule n°1
k=k-1
EndWhile

e = k    // Calcul du nombre d'égalités

While \"k>0\"
Calcul du nombre de pointsRecord du joueur à la position k avec la formule n°2
k=k-1
EndWhile

(Il y a deux boucles mais c'est pour mieux faire comprendre l'idée. S'il faut obligatoirement une seule boucle je peux toujours compliquer l'algorithme en fusionnant le tout en une unique boucle)

L'idée serait de calculer le nombre de points du dernier, puis de l'avant-dernier... (etc) avec une première formule jusqu'à qu'on tombe sur un joueur en position k qui serait 1er (à égalité ou non) et on calculerait les pointsRecords pour eux avec une autre formule de telle sorte qu'elle tiendrait compte du nombre d'égalité. Plus il y aurait d'égalités plus cette formule ferait en sorte de minimiser le nombre de points des premiers.

past*perfect :

Une petite question:
Est-ce que les égalités sont un problème en général, ou seulement pour les premières places?
Cela veut dire, est-ce qu'il vaut encore la peine de jouer un jeu comme ça:
http://www.vgr-fr.com/index.php5?c=record&id=10638


On souhaite que pour les records où il y a beaucoup d'égalités (comme le record que tu nous a donné) les joueurs en première place gagnent moins de points pour le classement par points. Mais le record reste intéressant si tu veux une médaille d'or supplémentaire.
08/11/2009 15:37
#293
Arcade 1789 messaggi
Note que le système doit s'appliquer avec n'importe quelle égalité, même si il y a 50 personnes égalités en 100eme position (ok vraiment peu de chance que ce soit possible mais bon) faut que ça réagisse comme si c'était 50 personnes égalités en 1ere position au niveau calcul de points.
08/11/2009 16:27
#294
BlackShark 5954 messaggi
Dans ce cas là est-ce qu'il serait possible de faire un truc comme ceci :


k=n; // n étant le nombre de joueurs.
m=n+1;
// m sert à garder en mémoire la place du joueur qui suit au classement le joueur dont on souhaite calculer les PointsRecords
pm=f1(n)-100;
// pm sert à garder en mémoire le nombre de PointsRecords gagné par le joueur qui suit au classement le joueur dont on souhaite calculer les PointsRecords. Pour le calcul du ou des derniers au classement on calcule le nombre de points éventuel que gagnerait un joueur seul à la dernière place sur un classement avec n joueurs - 100pts. (Cela servira pour distinguer un 10ème sur 10 joueurs et un 9ème à égalité sur 10 joueurs)

while k>0
if(\"position du joueur k\" = m)
 {Nombre de PointsRecords du joueur k = pm;}
else
{e=m-k;
     \"Nombre de points du joueur k\" = f2(pm,e);
     pm=\"Nombre de PointsRecords du joueur k\";
m=\"position du joueur k\";}
k=k-1;
EndWhile

L'idée serait ici de d'abord calculer le nombre de Points Records éventuel du dernier s'il était seul à la dernière place. Ensuite on calcule de proche en proche, les points du dernier puis de l'avant dernier etc... de telle sorte que une fois arrivée au joueur k :

Si il est à la même position que le joueur k+1, on lui attribue le même nombre de PointsRecords.
Sinon on pose \"e\" qui correspondrait au nombre d'égalités avec le joueur k (inclus) (Par exemple si le joueur k+1 est 6ème, et le joueur k est 3ème, on sait que les joueurs k-1, k-2 seront également 3ème et on a bien 3=6-3 égalités à cette 3ème place) puis on calcule le nombre de PointsRecords à la position k en fonction du nombre de PointsRecords du joueur k+1 et du nombre d'égalités (plus il y aura d'égalités plus on minimisera les points).
08/11/2009 18:53
#295
BlackShark 5954 messaggi
(Désole pour le double post)

Dans le cas où c'est réalisable on pourrait par exemple poser pour f1(n) et f2(pm,e) :

f1(n)=(exp^(-(n-1)/100)+1) *50

f2(pm,e)=pm+(10*(e+9))

On aurait alors ces résultats :

Cas avec 1 seul score :
1. => 100pts

Cas avec 10 scores différents :
1. => 996pts
2. => 896pts
3. => 796pts
4. => 696pts
5. => 596pts
6. => 496pts
7. => 396pts
8. => 296pts
9. => 196pts
10. => 96pts

Cas avec 10 égalités :
1. => 286pts

Cas avec 100 scores différents :
1. => 9 969pts
2. => 9 869pts
3. => 9 769pts
[...]
100. => 69pts

Cas avec 100 scores égaux :
1. => 1 159pts
08/11/2009 20:26
#296
Karoo 772 messaggi
Avant avec les égalités ça augmentait trop, là ça diminue pas mal :°
09/11/2009 00:33
#297
niconoe 3902 messaggi
Moi, je trouve ça très très très bon black ce dernier calcul,
Essaye avec 100 joueurs et des égalités plus ou moins aléatoires pour voir...

Sinon, je vais vous donner la boucle qui est faite en ce moment, il faudrait la conserver en modifiant deux trois petites choses mais je préfère que vous voyez que c'est déjà le bordel XD
09/11/2009 03:05
#298
Trindel 2559 messaggi

Karoo :

Avant avec les égalités ça augmentait trop, là ça diminue pas mal :°


Justement, c'est bien pour donner moins aux scores max... Ca semble bien cette nouvelle formule.

09/11/2009 09:47
#299
Karoo 772 messaggi
Car moi je pensais qu'il fallait que ça reste à peut prêt au même niveau de points que lorsqu'on est tout seul et non que ça descende, car quand yaura un max de joueurs sur un score max les points gagnés seront ridicules. Je trouve que ca fait le meme problème mais à l'opposé.
09/11/2009 09:49
#300
BlackShark 5954 messaggi

niconoe :

Moi, je trouve ça très très très bon black ce dernier calcul,
Essaye avec 100 joueurs et des égalités plus ou moins aléatoires pour voir...

Voici d'autres exemples :

Cas avec 10 égalités puis 90 scores différents :
1. => 9 159pts
[...]
1. => 9 159pts
11. => 8 969pts
[...]
100. => 69pts

Cas avec 20 égalités puis 80 scores différents :
1. => 8 259pts
[...]
1. => 8 259pts
21. => 7 969pts
[...]
100. => 69pts

Cas avec 10 égalités, puis 10 égalités, puis 10 égalités... :
1. => 1 879pts
[...]
1. => 1 879pts
11. => 1 679pts
[...]
11. => 1 679pts
21. => 1 489pts
[...]
21. => 1 489pts
31. => 1 299pts
[...]
31. => 1 299pts
41. => 1 109pts
[...]
41. => 1 109pts
51. => 919pts
[...]
51. => 919pts
61. => 729pts
[...]
61. => 729pts
71. => 539pts
[...]
71. => 539pts
81. => 349pts
[...]
81. => 349pts
91. => 159pts
[...]
91. => 159pts

Cas avec 20 scores différents, puis 10 égalités, puis 50 scores différents, puis 10 égalités, puis 10 scores différents :
1. => 8 349pts
[...]
20. => 6 449pts
21. => 6 349pts
[...]
21. => 6 349pts
31. => 6 159pts
[...]
80. => 1 259pts
81. => 1 159pts
[...]
81. => 1 159pts
91. => 969pts
[...]
100. => 69pts

niconoe :

Sinon, je vais vous donner la boucle qui est faite en ce moment, il faudrait la conserver en modifiant deux trois petites choses mais je préfère que vous voyez que c'est déjà le bordel XD


Ce serait intéressant pour savoir comment caser mon bordel. hidden

Edit :

Karoo :

Car moi je pensais qu'il fallait que ça reste à peut prêt au même niveau de points que lorsqu'on est tout seul et non que ça descende, car quand yaura un max de joueurs sur un score max les points gagnés seront ridicules. Je trouve que ca fait le meme problème mais à l'opposé.


Bah ça ne descend pas, ça augmente tout de même. :o

Exemple :

Cas avec 1 seul score : 1. => 100pts
Cas avec 10 égalités : 1. => 286pts
Cas avec 100 scores égaux : 1. => 1 159pts
Visualizzazione da 281 a 300 di 726 elementi
You must be logged in to reply to this topic.
Choisir un thème

Défaut

Gaming

Nintendo

Sega

Sony

Xbox

Capcom

Bandai Namco

EA

Ubisoft

Square Enix

Licences