Detrier un tableau ?? en langage C

mehdi118218 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonsoir tout le monde,
J'ai un tableau bidimensionnel d'entiers (en fait c'est un jeu de cartes) défini comme tel :

<code type="c">
enum {oeur, carreau, trefle, pique}
enum {sept, huit, neuf, dix, valet, dame, roi, as}

typedef int tab[32][2];
</code>
on a saisi le tableau d'une façon triée :

<code type="c">
for (i=sept;i<as;i++)
for (j=coeur;j<=pique;j++)
{
t[i][0]=i;
t[i][1]=j;
}
</code>

Mon problème c'est que je doit mélanger ce jeu de cartes pour le distribuer après sur 2joueurs, depuis tout a l'heure j'essaye d'avoir une idée pour mélanger ce tableau tout en gardant la cohérence du jeu de cartes (on ne doit pas avoir deux fois la même carte) et puis le mélange doit se faire d'une façon aléatoire pour que le jeu de cartes soit mélangé différemment a chaque exécution du programme.

S.V.P est-ce que quelqu'un aurait une idée pour moi ??? Je bloque vraiment là !!

Merci d'avance...
A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
Je te propose une façon de faire.
Tu choisis aléatoirement deux nombres compris entre 0 et 31 (compris), donc le numéro de la carte.
Et tu les échanges.
Donc ça donnerait :
valeur=tab[i][0];
figure=tab[i][1];
tab[i][0]=tab[j][0];
tab[i][1]=tab[j][1];
tab[j][0]=valeur;
tab[j][1]=figure;

Avec i et j, les indices choisis aléatoirement. Et tu fais une boucle d'une quinzaine de fois.
Et ton jeu sera mélangé ;)
Cdlt
0