Detrier un tableau ?? en langage C

Fermé
mehdi118218 Messages postés 10 Date d'inscription dimanche 20 janvier 2008 Statut Membre Dernière intervention 24 novembre 2008 - 24 nov. 2008 à 22:16
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 24 nov. 2008 à 22:34
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843
24 nov. 2008 à 22:34
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