MirKoRn
Messages postés27Date d'inscriptionmardi 17 avril 2007StatutMembreDernière intervention18 octobre 2007
-
28 août 2007 à 16:04
MirKoRn
Messages postés27Date d'inscriptionmardi 17 avril 2007StatutMembreDernière intervention18 octobre 2007
-
18 oct. 2007 à 10:45
quelqu'uin aurait une idée comment mélanger ce tableau?!?!?!
je me casse le cul a essayer et j'y arrive pas
ët aussi pour enlever les zeros de fin de ligne... si c'est possible et si ils influent sur le tri!
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 28 août 2007 à 16:52
Ben déjà faudra le stocker sous forme d'un vrai tableau. Ensuite tu peux utiliser une fonction aléatoire qui te donnera un nombre entre 0 et le nombre de cartes restantes (partant de 51, ça décroit à chaque tirage) pour obtenir une séquence de cartes.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 28 août 2007 à 17:15
Oui déjà tu devrais faire :
for (i=0;i<4;i++)
{
for (j=0;j<13;j++ )
{cout<<j+13*i<<" ";}
cout<<endl;
}
Mais c'est pas ça que je voulais dire : si tu veux pouvoir faire un tirage aléatoire, il faut pouvoir stocker tes données : savoir quelles cartes n'ont pas été tirées etc...Par exemple dans un tableau simple int nCards[51]; mais après cela dépend de la méthode choisie, tu peux également implémenter une liste...
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 28 août 2007 à 18:30
implémenter~coder...
Je voulais dire que tu n'es pas obligé de les ranger dans un tableau, mais dans la structure la mieux adaptée au reste du programme.
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 31 août 2007 à 11:41
char in[TAILLE];
char out[TAILLE];
int r;
for (int i=0;i<TAILLE;i++){
r=rand()%TAILLE;
while(in[r]==-1){
r--;
if (r==-1){ r=rand()%TAILLE; }
}
out[i]=in[r];
in[r]=-1;
}
ce qui ressemblerait le plus au melange de cartes manuel, c'est ca... mais ca fait une copie
char in[TAILLE];
int r;
for (int i=0;i<TAILLE;i++){
r=rand()%TAILLE;
a=in[r];
in[r]=in[i];
in[i]=a;
}
ceci c'est un poil plus rapide, t'as pas de copie, mais est-ce-parfaitement melange ? j'en sais rien, moi je pense que non... mais pour un jeu de carte, ca n'a que peu d'importance...
MirKoRn
Messages postés27Date d'inscriptionmardi 17 avril 2007StatutMembreDernière intervention18 octobre 2007 31 août 2007 à 15:49
ouais j'ai essayer mais bon je suis en train de désespérer.... je dois finir mon programme pour la semaine prochaine et j'ai toujours rien... je sais pas comment je vais m'en sortir vous avez pas une idée pour créer un programme de poker?
je voudrais avoir un tableau qui se mélange et ensuite donner des valeurs aux cartes pour pouvoir faire des additions pour détérminer qui à la main gagnante!
Samaths
Messages postés10Date d'inscriptionjeudi 6 septembre 2007StatutMembreDernière intervention22 juillet 2008 10 sept. 2007 à 17:13
Hello,
voici ce que je ferai à ta place, pour que ca soit "équiprobable" (c'est à dire avec les mêmes chances qu'un vrai mélange). Ca ressemble pas mal à ce qu'a fait coucou, mais en différent:
// D'abord un tableau avec les nombres dedans, le "tas de carte"
int in[Taille]
// Un second tableau, avec les cartes tirées
int out[Taille]
// Ensuit on fait les tirages:
for (int i(0); i<Taille; ++i)
{
// On choisit un indice du premier tableau:
int r(rand()%(Taille-i));
// On met cet élément dans notre tableau de sortie
out[i]=in[r];
// Puis on remplace celui qu'on a pris par le dernier
in[r]=in[Taille-1-i]
};
Voilà, ton out est pret! Remarque bien que lorsque j'ai tiré un nombre, je ne le retire pas: je copie le dernier à la place de celui que je viens de tirer, mais je ne vais plus tirer le dernier!
Ca devrait marcher normalement...
Sam-maths
P.S: la différence avec ce qu'a fait coucou, c'est qu'avec sa première méthode on a parfois plus de chance de tirer des petits numéros que des grands (à cause du --r)
P.S2: en fait, on aurait meme pas besoin de 2 tableaux, un tableau et un entier suffisent, mais on voit moins bien les choses
MirKoRn
Messages postés27Date d'inscriptionmardi 17 avril 2007StatutMembreDernière intervention18 octobre 2007 18 oct. 2007 à 10:45
Voilà, J'ai enfin terminer mon programme mais il fait plus qu'un méga et je ne peut pas le mettre en ligne alors pour ceux que cela intéresse faites moi signe en m'envoyant un mail a cette adresse: mirco_iuliano@hotmail.com.