Bonjour à tous, voilà je me suis mis à developper une petite application de poker.

Le besoin qui en découle est celui d'un algorithme sur qui permet de generer des cartes "uniques" (qu'on a pas brulées, pour ceux qui connaissent le poker).

Je possede un ensemble de cartes dans un tableau (51 elements).
Voici le principe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
//voici pour la generation de la 1ere carte
int random_number = (rand() % 52);
nb_carte1 = random_number;
tab_deadcards[0] = nb_carte1;
 
//voici pour la generation de la 2e carte
random_number = (rand() % 52)
nb_carte2 = verif_card(random_number, tab_deadcards);
tab_deadcards[1] = nb_carte2;
 
//et ainsi de suite...
 
//et voici ma fonction de controle
int verif_card(int carte, int deadcards[])
{
	int card;
	card = carte;
	int tablength = sizeof(deadcards) / sizeof(int);
	int a;
	for (a = 0; a < tablength; a++)
	{
		if (carte == deadcards[a])
		{
			card = (rand() % 52)
			return verif_card(card, deadcards);
		}
	}
 
	return card;
}
Mon problème est simple, je pensais que cet algorithme permettait recursivement de reparcourir a chaque fois le tableau de cartes brulées, mais dans mon jeu apparaissent quelquefois des cartes déja tirées...

N'ayant que peu de connaissances sur la récursivité en C, merci de m'éclairer