Jeu de carte BATAILLE problème d'affectation de valeur
Résolu/Fermé
samux22
Messages postés
8
Date d'inscription
samedi 15 décembre 2012
Statut
Membre
Dernière intervention
30 avril 2014
-
15 déc. 2012 à 15:25
samux22 Messages postés 8 Date d'inscription samedi 15 décembre 2012 Statut Membre Dernière intervention 30 avril 2014 - 16 déc. 2012 à 21:26
samux22 Messages postés 8 Date d'inscription samedi 15 décembre 2012 Statut Membre Dernière intervention 30 avril 2014 - 16 déc. 2012 à 21:26
A voir également:
- Jeu de carte BATAILLE problème d'affectation de valeur
- Carte d'identité - Accueil - Services publics
- 94 jeu - Télécharger - Puzzle & Réflexion
- Pile carte mere - Guide
- Jeu zuma - Télécharger - Jeux vidéo
- Jeux de moto: jeu de course 3d - Télécharger - Course
1 réponse
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
15 déc. 2012 à 16:34
15 déc. 2012 à 16:34
Après 6 mois d'apprentissage du C tu n'es pas capable de faire autre chose que des tableaux de chaînes de caractères !?
Il faudrait regarder les struct et les enum, c'est un minimum pour ce que tu veux faire...
Il faudrait regarder les struct et les enum, c'est un minimum pour ce que tu veux faire...
enum Couleur {PIQUE, COEUR, CARREAU, TREFLE}; enum Valeur {DEUX=2, TROIS=3, QUATRE=4, CINQ=5, SIX=6, SEPT=7, HUIT=8, NEUF=9, DIX=10, VALET=11, DAME=12, ROI=13, AS=14}; typedef struct struct_carte { Valeur valeur; Couleur couleur; } Carte; // Renvoie une valeur négative, nulle, ou positive si la valeur de carte1 est inférieure, égale ou supérieure à la valeur de carte2. int comparer(Carte carte1, Carte carte2) { return carte1.valeur-carte2.valeur; } int main() { Carte c1 = {AS,COEUR}; Carte c2 = {CINQ,PIQUE}; printf("%d",comparer(c1,c2)); }
15 déc. 2012 à 17:25
J'ai écrit 6 mois mais je suis en term S, je n'est pas vraiment le temps, à part le week-end, ou pendant les vacances, de me pencher sur le C.
Pourriez-vous m'expliquer rapidement à quoi correspondent les lignes suivantes ? (quels sont les formats des variable Valeur valeur et couleur Couleur ? et à quoi sert le " Carte; " seul, au milieu du code ? )
typedef struct struct_carte
{
Valeur valeur;
Couleur couleur;
}
Carte;
Merci à vous !
15 déc. 2012 à 17:36
ce sont des types enum déclarés dans les lignes juste au-dessus.
"à quoi sert le " Carte; " seul, au milieu du code ?"
Il n'est pas "seul", c'est la suite du typedef. On doit avoir : typedef untype nomdutype
Le paramètre "untype" c'est la structure : struct struct_carte { ... }
Le paramètre "nomdutype" c'est le "Carte" à la fin.
15 déc. 2012 à 18:51
15 déc. 2012 à 19:07
15 déc. 2012 à 20:37
Il ne me reste plus qu'à réécrire mon programme dans le bon format :-) Comment ferai-je pour que l'ordinateur ne choisisse pas deux fois la même carte ?
(Pourriez-vous, si vous avez le temps, m'expliquer comment créer un programme qui affiche toutes les cartes dans un ordre au hasard, dans le système de structure ?)
Voici mon programme actuel; il mélange les cartes en simulant un mélange humain (c'est à dire que le paquet en séparé en trois, puis l'ordre des trois tas est inversé), puis il distribue en deux tas (en simulant une distribution humaine: une carte sur deux) :
int main()
{
printf("\n\n ---------------JEU DE LA BATAILLE---------------\n\n\n\n");
srand(time(NULL));
int tableau[100];
int l;
double k;
int carte2[100];
int player1[100];
int player2[100];
int i=0;
int j=0;
int n=200;
int K=0;
int p=0;
double m=0;
int compteur;
tableau[0]=0;
tableau[1]="As de coeur",14;
tableau[2]="Roi de coeur",13;
tableau[3]="Dame de coeur",12;
tableau[4]="Valet de coeur",11;
tableau[5]="10 de coeur",10;
tableau[6]="9 de coeur",9;
tableau[7]="8 de coeur",8;
tableau[8]="7 de coeur",7;
tableau[9]="As de carreau",14;
tableau[10]="Roi de carreau",13;
tableau[11]="Dame de carreau",12;
tableau[12]="Valet carreau",11;
tableau[13]="10 de carreau",10;
tableau[14]="9 de carreau",9;
tableau[15]="8 de carreau",8;
tableau[16]="7 de carreau",7;
tableau[17]="As de pique",14;
tableau[18]="Roi de pique",13;
tableau[19]="Dame de pique",12;
tableau[20]="Valet de pique",11;
tableau[21]="10 de pique",10;
tableau[22]="9 de pique",9;
tableau[23]="8 de pique",8;
tableau[24]="7 de pique",7;
tableau[25]="As de trefle",14;
tableau[26]="Roi de trefle",13;
tableau[27]="Dame de trefle",12;
tableau[28]="Valet de trefle",11;
tableau[29]="10 de trefle",10;
tableau[30]="9 de trefle",9;
tableau[31]="8 de trefle",8;
tableau[32]="7 de trefle",7;
for (p=1 ; p<=n ; p++) //melange des cartes
{
i=(rand()%(32-2+1))+2; //premier partage
j=(rand()%(i-1+1))+1; //deuxieme partage
for ( K=1 ; K<=i ; K++ )
{
carte2[K] = tableau[K]; //affiche les i premiere cartes dans tab2
}
for ( K=i+1 ; K<=32 ; K++ )
{
tableau[K-i] = tableau[K]; //affiche les derniere cartes de tab1 au debut
}
for ( K=1 ; K<=j ; K++ )
{
tableau[K+32-j] = carte2[K]; //affiche les premiere carte de tab2 a la fin de tab1
}
for ( K=j+1 ; K<=i ; K++ )
{
tableau[(K-j)+(32-i)] = carte2[K]; //range les carte du milieu
}
printf("\tMelange %d, i=%d, j=%d\n", p, i,j);
}
i=0;
l=0;
m=0;
K=0;
for (m=1;m<=32;m++) //distribue en deux tas (joueur1 et joueur2)
{
K++;
if (floor(m/2)==(m/2))
{i++;
player1[i]=tableau[K];
}
else
{l++;
player2[l]=tableau[K];
}
}
printf("\n -- Voici le tas 1 --\n\n"); //afficher tas du joueur 1
for (i=1;i<=16;i++)
{
printf("\t");printf(player1[i]);printf("\n");
}
printf("\n -- Voici le tas 2 --\n\n"); //afficher tas du joueur 2
for (i=1;i<=16;i++)
{
printf("\t");printf(player2[i]);printf("\n");
}
// tirage de carte
printf("\nJoueur 1 tire une carte : "); printf(player1[1]);
printf("\nJoueur 2 tire une carte : "); printf(player2[1]);
printf("\n\n\n");
return 0;
}