Jeu de poker
Fermé
Kadjarnn
Messages postés
13
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
19 décembre 2018
-
13 déc. 2018 à 15:22
[Dal] Messages postés 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 - 19 déc. 2018 à 13:51
[Dal] Messages postés 6200 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 7 janvier 2025 - 19 déc. 2018 à 13:51
A voir également:
- Jeu de poker
- 94 jeu - Télécharger - Puzzle & Réflexion
- Jeu zuma - Télécharger - Jeux vidéo
- Jeu 94 degrés - Télécharger - Divers Jeux
- Jeux de moto: jeu de course 3d - Télécharger - Course
- Logo jeu - Télécharger - Jeux vidéo
3 réponses
[Dal]
Messages postés
6200
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
7 janvier 2025
1 097
Modifié le 14 déc. 2018 à 11:20
Modifié le 14 déc. 2018 à 11:20
OK, c'est donc un exercice.
Dans ton énoncé
Puis, mélange ton paquet (avec l'algorithme de Yates-shuffle, par exemple, qui opère des permutations successives aléatoirement). Dès lors, pour tirer une carte au hasard, il te suffira de prendre les cartes une par une dans l'ordre du tableau. Avec cette méthode, pas besoin d'un champ supplémentaire.
Tu auras alors un paquet de cartes
Ainsi, pour faire un tirage de 5 cartes, tu prends juste successivement les cartes aux indices 0, 1, 2, 3, 4 du tableau
Tu peux copier ou affecter des
Si tu dois piocher la carte suivante sur le paquet, tu prend la carte à l'indice 5 du tableau
N.B.
Note que j'ai juste survolé ton code, et qu'il ne compile pas en raison des nombreuses erreurs de syntaxe (majuscules aux mots clefs du C notamment) et de son caractère incomplet.
Dans ton énoncé
enrjeux32contient ton jeu de 32 cartes. D'abord, crée ce tableau avec toutes les cartes dans l'ordre des couleurs et des valeurs. A ce stade, ton paquet de cartes est complet, mais il n'est pas encore correctement initialisé car il n'est donc pas mélangé.
Puis, mélange ton paquet (avec l'algorithme de Yates-shuffle, par exemple, qui opère des permutations successives aléatoirement). Dès lors, pour tirer une carte au hasard, il te suffira de prendre les cartes une par une dans l'ordre du tableau. Avec cette méthode, pas besoin d'un champ supplémentaire.
Tu auras alors un paquet de cartes
enrjeux32avec lequel il te suffit de piocher pour tirer une carte (comme dans un jeu réel avec un vrai donneur).
Ainsi, pour faire un tirage de 5 cartes, tu prends juste successivement les cartes aux indices 0, 1, 2, 3, 4 du tableau
enrjeux32et tu les copies dans
enrTabMonJeu.
Tu peux copier ou affecter des
structde même type avec
=.
Si tu dois piocher la carte suivante sur le paquet, tu prend la carte à l'indice 5 du tableau
enrjeux32, etc.
N.B.
Note que j'ai juste survolé ton code, et qu'il ne compile pas en raison des nombreuses erreurs de syntaxe (majuscules aux mots clefs du C notamment) et de son caractère incomplet.
[Dal]
Messages postés
6200
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
7 janvier 2025
1 097
13 déc. 2018 à 17:16
13 déc. 2018 à 17:16
Salut Kadjarnn,
Cela dépend de tes structures de données existantes.
Si tu as une structure de données qui te permet de stocker les 32 cartes, une façon de faire est d'insérer une variable en tant que membre de la struct pour chacune des 32 cartes, par exemple
Il y a d'autres façons de faire, avec d'autres façons de représenter les cartes ou le jeu de cartes mélangé.
Dal
Cela dépend de tes structures de données existantes.
Si tu as une structure de données qui te permet de stocker les 32 cartes, une façon de faire est d'insérer une variable en tant que membre de la struct pour chacune des 32 cartes, par exemple
int distribuee;qui indiquera si la carte a déjà été distribuée ou pas. Si c'est le cas et que tu tombes dessus, tu refais un tirage aléatoire jusqu'à ce que tu tombes sur une carte non encore distribuée.
Il y a d'autres façons de faire, avec d'autres façons de représenter les cartes ou le jeu de cartes mélangé.
Dal
[Dal]
Messages postés
6200
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
7 janvier 2025
1 097
Modifié le 13 déc. 2018 à 17:42
Modifié le 13 déc. 2018 à 17:42
Par exemple, avec un tableau représentant toutes les cartes uniques, mélangé comme cela :
https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
https://stackoverflow.com/questions/3343797/is-this-c-implementation-of-fisher-yates-shuffle-correct
https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
https://stackoverflow.com/questions/3343797/is-this-c-implementation-of-fisher-yates-shuffle-correct
Kadjarnn
Messages postés
13
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
19 décembre 2018
13 déc. 2018 à 20:54
13 déc. 2018 à 20:54
Merci de votre réponse
Donc faut que j'ai créer une variable dans ma structure mais si jfait cela j'ai doit ajoute un autre tableaux pour stoker mes valeur?
Donc faut que j'ai créer une variable dans ma structure mais si jfait cela j'ai doit ajoute un autre tableaux pour stoker mes valeur?
[Dal]
Messages postés
6200
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
7 janvier 2025
1 097
Modifié le 14 déc. 2018 à 09:00
Modifié le 14 déc. 2018 à 09:00
Peux-tu poster ton code pour que l'on comprenne comment tu représentes et stockes ton jeu de cartes et les cartes distribuées aux joueurs et t'aider à partir de ta façon de le faire ?
Autrement, je peux te montrer comment, moi, je le ferais, sans avoir besoin de rajouter un champ de statut de distribution, en utilisant un tableau représentant le jeu de carte mélangé.
Autrement, je peux te montrer comment, moi, je le ferais, sans avoir besoin de rajouter un champ de statut de distribution, en utilisant un tableau représentant le jeu de carte mélangé.
Kadjarnn
Messages postés
13
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
19 décembre 2018
Modifié le 14 déc. 2018 à 10:52
Modifié le 14 déc. 2018 à 10:52
Voila mon programme la fonction Void initjeu32( TCarte enrtabcarte32[ ], int iTaille) elle me genere le 32 carte
#define TAILLE 5 #define SIZE 32 Type defstruct{ Char mcCouleur; Int mivaluer; }TCarte; Void initjeu32( TCarte enrtabcarte32[ ], int iTaille); Void main (void){ TCarte enrtabmonjeu[TAILLE]; TCarte enrjeux32[SIZE]; Int ibcl=0; Int ival=0; Srand((int)time(NULL)); For(ibcl=0;ibcl<TAILLE;ibcl++){ Ival=rand()%32; enrtabmonjeu[ibcl].mivaleur= TCarte enrjeux32[ival].mivaleur, enrtabmonjeu[ibcl].mcCouleur TCarte enrjeux32[ival].mcCouleur } For(ibcl=0;ibcl<TAILLE;ibcl++){ Printf(" carte numero %i= %c %i\n",ibcl, enrtabmonjeu[ibcl].mcCouleur, enrtabmonjeu[ibcl].mivaleur); } Type defstruct{ Char mcCouleur; Int mivaluer; }TCarte; Void initjeu32( TCarte enrtabcarte32[ ], int iTaille);
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
Kadjarnn
Messages postés
13
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
19 décembre 2018
14 déc. 2018 à 10:09
14 déc. 2018 à 10:09
Toi tu aurait fait comment ? Pasque dans mon cahier des charge il me demende de créer un autre tableau ou jvais stoker le carte et de decale par la suite ce tableau pour ecrase la case ou ma carte a été stoker
Modifié le 18 déc. 2018 à 10:17
Ducoup avant de remplir mon tableu j'ai doit melager le carte et puis les affecte a pon tableau mais comment on sait si aura pas de doublons
Voila aussi la fonction qui genere le carte
14 déc. 2018 à 15:40
Par exemple, avec un tableau représentant toutes les cartes uniques, mélangé comme cela :
https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
https://stackoverflow.com/questions/3343797/is-this-c-implementation-of-fisher-yates-shuffle-correct
Modifié le 14 déc. 2018 à 16:29
- personnellement, je n'aime pas les et quand je peux m'en passer je ne les utilise pas car cela masque la véritable nature du type (maintenant, si tu dois les utiliser car c'est un devoir, fais le)
- les noms de types et les noms de variables ou de tableaux me paraissent compliqués et ne me parlent pas du tout (même observation)
- j'utiliserai des tableaux pour établir la liste des couleurs et des valeurs (en respectant l'ordre de valeur, afin d'utiliser ce tableau pour faciliter ensuite l'évaluation de la main)
- j'utiliserai la notation internationale pour la désignation du nom des cartes et de leur couleur, car celle que tu utilises n'est familière ni en France, ni ailleurs (maintenant, si tu dois l'utiliser car c'est un devoir, fais le)
- je construirai le jeu pour un paquet de 52 cartes, parce que je n'aime pas les jeux à 32 cartes (même remarque)
- et donc j'utiliserai le mélange de Fisher-Yates en m'inspirant de l'une de ses implémentations
Cela peut alors se faire comme cela :
Donne, par exemple :
Dal
14 déc. 2018 à 17:48