Haaaaaaaa!! Je viens de comprendre ta question! :D
Alors en fait une énumération, c'est pour éviter de se retrouver avec du code comme ça:
switch(alignementJoueur){
case 0:
//Des trucs
case 1:
//Des trucs
//...
case 4:
//Des trucs
defaut:
//Des trucs
}
Ici, même celui qui a écrit ça ne comprend rien... Alors maintenant, si tu définis une énumération sur les alignements joueurs (le code ci-dessous à exactement le même comportement que celui plus haut):
enum AlignementJoueur{
NEUTRE = 0,
BONTARIEN = 1,
BRAKMARIEN = 2,
SERIANE = 3,
INDEFINI = 4
};
//Plus loin
switch(alignementJoueur){
case AlignementJoueur::NEUTRE :
//Des trucs
case AlignementJoueur::BONTARIEN :
//Des trucs
//...
case AlignementJoueur::INDEFINI :
//Des trucs
defaut:
//Des trucs
}
Donc oui, effectivement, tu associes des entiers (dont la valeur t'importe peu au final, normalement c'est fait pour être totalement opaque, le dev a juste à marquer le nom de la composante appartenant à l'énumération, sans se soucier de sa valeur) a un nom. C'est simplement pour rendre le code plus lisible, et facile à comprendre (et donc plus maintenable :D).
EDIT: il vient de me traverser l'esprit que tout le monde ne connaissait pas la syntaxe C/C++ (et que les switch n'ont pas d'équivalent dans certains langages, comme Python)... Du coup, dans le cas où tu ne connais pas la syntaxe:
switch(a){
case 0:
//Commentaire
case 1:
//Des instructions
defaut:
//Des instructions
}
Équivaut à:
if(a == 0):
//Commentaire
else if(a == 1):
//Des instructions
else:
//Des instructions