Wiki Dofus

A

Anonymous

Invité
#21
jones a dit:
Il ne faut pas oublier les breaks dans les cases.
C'était un simple exemple.. Rajouter des break; partout aurait rajouté une "notion" de plus, et n'aurait pas facilité la compréhension des énumérations (qui était le sujet principal). Sinon, oui tu as raison, ne pas oublier les break;
Et oui, Python à la classe, je m'en suis rendu compte hier, mais c'est vrai que pour faire des scripts, il est plutôt simple et le code est court, très court ^^

Et Labo.. Ton code ressemble plutôt à un tableau de fonctions je trouve.. "si l'utilisateur entre x, alors on lance la fonction y()". Ton code est équivalent au switch / case, mais ce n'est pas une énumération ^^
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#22
En fait, c'est parce que j'avais mis des chiffres, pour faire un équivalent du switch, mais l'intérêt des dicos, c'est qu'on peut indexer avec n'importe quel type (même avec des fonctions :p).
On peut faire :
Code:
AlignementJoueur= {"NEUTRE" : 0, "BONTARIEN" : 1, "BRAKMARIEN" : 2, "SERIANE" : 3, "INDEFINI" : 4}
case = {0 : a, 1 : b, 2 : c, 3 : b, 4 : b}
def a():
   #ce qu'on fait dans ce cas
def b():
   #ce qu'on fait dans ce cas
def c():
   #ce qu'on fait dans ce cas

case[AlignementJoueur['NEUTRE']]()
Ou même, plus directement (et là on défonce le combo switch+enums en matière de longueur, mais notre code est moins compréhensible qu'au dessus) :

Code:
case = {"NEUTRE" : a, "BONTARIEN" : b,"BRAKMARIEN" : c, "SERIANE" : b, "INDEFINI" : b}
def a():
   #ce qu'on fait dans ce cas
def b():
   #ce qu'on fait dans ce cas
def c():
   #ce qu'on fait dans ce cas

case['NEUTRE']()
et en général
case[str]()
 
A

Anonymous

Invité
#23
Bon et sinon, revenons-en à notre sujet de départ (parce que je n'ai toujours pas eu de réponse ^^): La présentation des énumérations vous va, ou vous avez quelque chose de plus esthétique à me proposer? :)
 

Labo

Membre Actif
Inscrit
16 Aout 2013
Messages
799
Reactions
15
#24
Moi, je trouve cela très bien.
Juste, je me demandais pourquoi certains sont des int et d'autres des uint...
 

Kyu

Staff
Membre du personnel
Inscrit
4 Octobre 2009
Messages
327
Reactions
8
#25
Certains peuvent être négatifs alors que d'autre non.
Étant donné qu'un type signé et non signé prennent la même place en mémoire, à part sécurisé l'assignation de valeur, je n'y vois aucune utilité.
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#26
C'est une très bonne chose. Je vais rajouter le lien en bas du forum si ça vous dit?
 

Sorrow

Membre Actif
Inscrit
5 Mai 2012
Messages
376
Reactions
26
#27
Avec plaisir :)
 
A

Anonymous

Invité
#28
Bon du coup, ce soir je finis d'uploader les énumérations sur le site, il ne manquera plus que toutes les descriptions :)
Et je pense que je vais faire un autre petit script pour les autres catégories, je vous tiens au courant dès que j'aurais essayé ;)
 
Haut Bas