Aller au contenu

Messages recommandés

Posté(e)

Non il reste une erreur et je pense qu'elle ce situe ici

# Calcule le nb de defaites E echelons en-dessous
def nbInf( myClassement, defaites, E ):
global classementNumerique
nb = 0
for i in defaites:
if( E >= 0 ) :
if( classementNumerique[ i[0] ] == ( classementNumerique[ myClassement ] - E ) ):
nb = nb+1
else:
if( classementNumerique[ i[0] ] <= ( classementNumerique[ myClassement ] - 2 ) ):
nb = nb+1
return nb

Car dans ton else tu ne soustraits pas les défaites par wo. Tu considère que tout autre défaite qu'à échelon -1 est une défaite significative...

Posté(e)

Non il reste une erreur et je pense qu'elle ce situe ici

# Calcule le nb de defaites E echelons en-dessous

def nbInf( myClassement, defaites, E ):

global classementNumerique

nb = 0

for i in defaites:

if( E >= 0 ) :

if( classementNumerique[ i[0] ] == ( classementNumerique[ myClassement ] - E ) ):

nb = nb+1

else:

if( classementNumerique[ i[0] ] <= ( classementNumerique[ myClassement ] - 2 ) ):

nb = nb+1

return nb

Car dans ton else tu ne soustraits pas les défaites par wo. Tu considère que tout autre défaite qu'à échelon -1 est une défaite significative...

une défaite significative insère un "S", qui est transcrit dans le classement "numérique" par -1. Donc quand tu calcules le G (appel de la fonction nbInf avec -1 comme dernier paramètre donc on passe dans l'alternative) ça compte chaque WO "significatif" (à partir du 3eme) dans le G car -1 est forcément inférieur.

Quand on appelle nbInf avec 1 comme dernier paramètre (calcul du I) on ne peut pas entrer dedans car cela voudrait dire que classementNumerique[ myClassement ] vaut 0, donc classement proposé de NC, et on s'en fout du maintien à NC :D

J'ai vérifié le calcul en affichant la valeur du V, du E, du I et du G, c'est correct.

Bon je vais faire autrement si ce n'est pas clair.

Edit : j'ai surtout ajouté l'affichage du V, du E, du I et du G.

Posté(e)

J'ai eu la même idée d'afficher les E I et G

L'erreur est dans le calcul ci-dessous en modifiant comme ci-dessous

# calcule le V - E - 2I - 5G
def VE2I5G( classement, victoires, defaites ):
v = len( victoires )
e = nbInf( classement, defaites, 0 )
i = nbInf( classement, defaites, 1 )
g = nbInf( classement, defaites, -1 )
print "E:", e, "I:" , i, "G:", g
return ( v - e - 2*i - 5*g )

Le G est faut car il compte les 2 défaites par wo

Il faudrait mieux faire le calcul pour G= somme des défaites + détaite par wo (si <=3) -e -i

Posté(e)

Heu les défaites par WO comptent dans le bilan hein...

Si tu n'as que 2 défaites par WO (comme c'est ton cas) tu n'as pas d'ajout de défaites significatives, mais si elles sont à 2 échelons en-dessous, elles comptent dans le G.

Dans ton G à 30 j'ai : ['30/2', '30/2', '30/2', '30/5', '30/5', '40']

Les WO était les défaites à 40 et à 30/5.

Par contre effectivement dans le E et le I il ne faut pas les compter (je corrige même si ça n'affecte pas ton cas)

Edit : heu le mémo FFT est ambigu :

- V = nombre de victoires (victoires par w.o. comprises) ;

- E = nombre de défaites à échelon égal (défaites par w.o. non comprises) ;

- I = nombre de défaites à un échelon inférieur (défaites par w.o. non comprises) ;

- G = nombre de défaites à deux échelons inférieurs et plus, et par w.o. à partir du 3e.

Du coup dans le G je compte

- tous les WO + les défaites significatives insérées

- ou seulement les défaites insérées ?

Je vais poser la question dasn un topic sur le calcul

Posté(e)

J'ai corrigé (en tout cas ça règle mon problème)

# calcule le V - E - 2I - 5G
def VE2I5G( classement, victoires, defaites ):
n = nbWO ( defaites )
v = len( victoires )
e = nbInf( classement, defaites, 0 )
i = nbInf( classement, defaites, 1 )
g = nbInf( classement, defaites, -1 )-n
print "E : ", e, " I: " , i, " G : ", g
return ( v - e - 2*i - 5*g )
Edit: En fait il faut encore rajouter la condition de n<=3 enfin je ne sais pas trop car ça doit être pris en compte dans ton S
Posté(e)

Heu les défaites par WO comptent dans le bilan hein...

Si tu n'as que 2 défaites par WO (comme c'est ton cas) tu n'as pas d'ajout de défaites significatives, mais si elles sont à 2 échelons en-dessous, elles comptent dans le G.

Dans ton G à 30 j'ai : ['30/2', '30/2', '30/2', '30/5', '30/5', '40']

Les WO était les défaites à 40 et à 30/5.

Par contre effectivement dans le E et le I il ne faut pas les compter (je corrige même si ça n'affecte pas ton cas)

Edit : heu le mémo FFT est ambigu :

- V = nombre de victoires (victoires par w.o. comprises) ;

- E = nombre de défaites à échelon égal (défaites par w.o. non comprises) ;

- I = nombre de défaites à un échelon inférieur (défaites par w.o. non comprises) ;

- G = nombre de défaites à deux échelons inférieurs et plus, et par w.o. à partir du 3e.

Du coup dans le G je compte

- tous les WO + les défaites significatives insérées

- ou seulement les défaites insérées ? Les wo ne comptent pas si inférieurs ou égal à 3 donc juste les défaites significatives insérées

Je vais poser la question dasn un topic sur le calcul

Posté(e)

ok, j'ai poussé un correctif.

C'est marrant, dans le V-E-2I-5G on compte les WO dans les victoires et peu dans les défaites. On fait donc tout pour le maximiser (sauf pour ceux qui en ont trop). Alors que dans le calcul des points, on ne les compte pas dans les victoires...

Grumms, du coup tu as le résultat auquel tu t'attendais ?

Posté(e)

if not i[1] or i[0] == "S": # exclure les WO sauf à partir du 3eme

(et je viens de rajouter une lgine qui avait disparu, bizarrement ça aurait dû me mettre un message d'erreur sur l'indentation...)

Posté(e)

if not i[1] or i[0] == "S": # exclure les WO sauf à partir du 3eme

(et je viens de rajouter une lgine qui avait disparu, bizarrement ça aurait dû me mettre un message d'erreur sur l'indentation...)

Ah oui c'est clair... merci!

En gros, si nous ne sommes pas dans le cas d'une pénalité on additionne le nb de match perdus. C'est ça?

Posté(e)

Ah oui c'est clair... merci!

En gros, si nous ne sommes pas dans le cas d'une pénalité on additionne le nb de match perdus. C'est ça?

Si c'est une pénalité, il y a un 'S', qui est forcément "plus de 2 échelons en-dessous"

Ça compte le nombre de défaites à échelon voulu (égal, à l'échelon inférieur, etc) en ne comptant pas les WO, sauf ceux qui sont marqués 'S' dans le cas du calcul du G

Posté(e)

Si c'est une pénalité, il y a un 'S', qui est forcément "plus de 2 échelons en-dessous"

Ça compte le nombre de défaites à échelon voulu (égal, à l'échelon inférieur, etc) en ne comptant pas les WO, sauf ceux qui sont marqués 'S' dans le cas du calcul du G

oui merci c'est ce que j'avais compris

Posté(e)

pffff il y a plein de règles dans le calcul du classement mine de rien.

Déjà l'an dernier j'ai dû faire une grosse modif pour différencier le classement calculé et le classement harmonisé des adversaires dans le calcul :w00t:

Posté(e)

tu vas voir que si ça se trouve dans un an on va encore trouver un détail d'une règle que je ne prends pas en compte :D

Posté(e)

Hello K-Mille,

Je viens de tester ton logiciel, premièrement merci pour l'ensemble de ton travail !

J'ai été surpris de voir mon classement affiché à la fin. Il prend en compte le palmarès de l'année passée et mon classement de cette année, comment puis-je faire pour passer en paramètre l'année en cours ?

Merci par avance,

Arnaud :)

EDIT : J'ai trouvé dans le code d'ou venait le problème, dans le fichier palmares.py il y avait "2014" de renseigné lors de l'appel de la fonction getPalma dans la fonction ClassementJoueur.

Posté(e)

EDIT : J'ai trouvé dans le code d'ou venait le problème, dans le fichier palmares.py il y avait "2014" de renseigné lors de l'appel de la fonction getPalma dans la fonction ClassementJoueur.

Uh ? Ligne 312 :

https://github.com/coti/classement/blob/master/palmares.py#L312

V, D = getPalma( 2015, id, opener )
Posté(e)

Vu le nombre de fois où Jeanfils l'a fait tourner à profondeur 3 sur son palmarès énorme, je pense que tu peux y aller quand même :D

Posté(e)

Je vais attendre courant septembre et je testerai alors. Après, avec des numérotées et des étrangères NC, je ne sais pas trop comment ca marche en réel.

Posté(e)

Vu le nombre de fois où Jeanfils l'a fait tourner à profondeur 3 sur son palmarès énorme, je pense que tu peux y aller quand même :D

C'est clair, j'ai du faire tourner une trentaine de fois... des fois 3 à 4 fois par jour.

Posté(e)

Bonjour :)

Question bête, quand la moulinette a fini, la page après activation de Palmares.py se ferme sans qu'on ait pu voir le résultat. Celui-ci est enregistré qq part ?

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
×
×
  • Créer...