Bonjour à tous,
J'ai un problème pour programmer en pascal...
Je voudrais pouvoir tirer une carte au hasard ici d'un de mon paquet de cartes
type
ordreC=(T2,T3,T4,T5,T6,T7,T8,T9,T10,TV,TD,TR,TA,
K2,K3,K4,K5,K6,K7,K8,K9,K10,KV,KD,KR,KA,
C2,C3,C4,C5,C6,C7,C8,C9,C10,CV,CD,CR,CA,
P2,P3,P4,P5,P6,P7,P8,P9,P10,PV,PD,PR,PA,Vide);
couleurRN=(rouge,noir);
couleurC=(trefle,carreau,coeur,pique);
carte =record
nom:ordreC;
coul : couleurC;
coulRN : couleurRN;
end;
var
PaquetCartes : array[1..52] of carte;
begin
end.
Voila comment j'ai déclarer mes cartes et mon paquet de cartes, es ce que quelqu'un pourrait m'aider pour tirer une carte au hasard du paquet et que le programme me dise qu'elle carte il s'agit.
Merci d'avance ;);)
Posted by: Flodelarab
cherche du coté de rnd() et randomize()
Personnellement, je trouve ta modélisation fouillie.
Si tu as CouleurC, n'as tu pas automatiquement couleur RN ?
A quoi sert de definir les couleurs quand on a defini les 52 cartes ?
Ne crois tu pas qu'une carte est une couleur et une hauteur (2 valeurs seulement) ?
Posted by: chacha7611
Merci de ta réponse.
Pour la couleur. Le pc ne s'est pas que le trèfle est noir, le coeur rouge...C'est pour cela qu'il faut faire 2 types différents.
Pour le random je sais qu'il faut l'utiliser mais je n'arrive pas à l'utiliser correctement sur ce type...
Posted by: abcd22
Bonsoir,
Il suffit de tirer un nombre au hasard entre 1 et 52, et ensuite utiliser l'ordre dans lequel tu as noté tes cartes dans ordreC pour trouver à quelle carte chaque nombre correspond:
- quotient de la division par 13 pour trouver la couleur,
- reste de cette division pour la valeur.
Je ne vois pas non plus à quoi sert ton type carte, tu peux avoir toutes les informations que tu veux une fois que tu as choisi comment faire correspondre un nombre à une carte. Pour rouge/noir par exemple tu mets trèfle et pique au début puis coeur et carreau, et il suffit de comparer le nombre tiré avec 26 pour savoir si la carte est rouge ou noire.
Edit:pour utiliser le quotient il vaudrait mieux tirer un nombre entre 0 et 51.