Bonjour
je cherche la technique la plus rapide pour tirer les 52 cartes à la suite d'un jeu de cartes;comme je le dis je débute et j'ai trouvé plusieurs techniques mais 1 peu trop lente à mon gout
Merci d'avance
Bonjour
je cherche la technique la plus rapide pour tirer les 52 cartes à la suite d'un jeu de cartes;comme je le dis je débute et j'ai trouvé plusieurs techniques mais 1 peu trop lente à mon gout
Merci d'avance
le monsieur veux tirer les cartes ... pas les trier. ou alors j'ai mal comprisEnvoyé par Emmanuel Delahaye
![]()
j'ai eu a le faire ... et la technique que j'ai utilisé etait assez rustique ... mais fonctionne sans trop de problemes.
tu fait un tableau de 52 elements, chaque element represente une carte, et la valeur de l'element represente un ID de joueur.
int jcartes[52] = {0};
tu tire un nombre aleatoire (voir la FAQ) et tu attribue la carte au joueur auquel tu est en train de distribuer si cette carte n'as pas ete deja distribué.
aleat = getrandnbr(0,51);
if(jcartes[aleat] == 0)
{
jcartes[aleat] = player[0].id;
player[0].nbcartes++;
}
ensuite, tu continue jusqu'a ce que ton joueur ait le nombre necessaire de cartes... ensuite tu passe au joueur suivant.
Papy se fait vieux, faut parler plus fort !Envoyé par Dark_Ebola
Oui c'est ce a quoi j'avais pensé mais le probleme c'est que pour les dernières cartes du tas quand je tire un nombre aleatoirement il y a beaucoup de chances pour que cesoit 1 carte deja tiré et la boucle peut durer longtemps surtout avec un truc pas tres puissant(ce que j'ai bien evidemment) et donc je cherche comment passer outre cette attente
Tu génères une permutation aléatoire (tu pars d'un tableau et tu échanges chaque élément du tableau avec un des suivants tiré au hasard) et ensuite tu distribues le paquet ainsi consitué. C'est plus un problème d'algo d'ailleurs.
c'est plus la peine de continuer a distribuer pour le dernier joueurEnvoyé par raiden02
![]()
si t'as 4 joueurs, tu distribue pour 3 joueurs, et les 13 cartes restantes vont au 4ieme.
en utilisant rand proprement (voir la FAQ), j'avais pas plus d'une 100 aines (en moyenne) de tirages supplementaires pour tout distribuer.
sinon j'aime bien la solution a Medinoc ... c'est presque elegant.
Partager