bydjyde
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
-40%
Le deal à ne pas rater :
Tefal Ingenio Emotion – Batterie de cuisine 10 pièces (induction, ...
59.99 € 99.99 €
Voir le deal

programation

Aller en bas

programation Empty programation

Message  Admin Dim 13 Sep - 12:01

pour parler de la programation !



moi jen fait et je fais quelque programme regardez !
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129



/*
Jeu du pendu
Par kram , pour le forum bydjyde
https://bydjyde.forumactif.org/

main.c
------

Fonctions principales de gestion du jeu
*/

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

#include "dico.h"

int gagne(int lettreTrouvee[], long tailleMot);
int rechercheLettre(char lettre, char motSecret[], int lettreTrouvee[]);
char lireCaractere();

int main(int argc, char* argv[])
{
char lettre = 0; // Stocke la lettre proposée par l'utilisateur (retour du scanf)
char motSecret[100] = {0}; // Ce sera le mot à trouver
int *lettreTrouvee = NULL; // Un tableau de booléens. Chaque case correspond à une lettre du mot secret. 0 = lettre non trouvée, 1 = lettre trouvée
long coupsRestants = 10; // Compteur de coups restants (0 = mort)
long i = 0; // Une petite variable pour parcourir les tableaux
long tailleMot = 0;

printf("Bienvenue dans le Pendu !\n\n");

if (!piocherMot(motSecret))
exit(0);

tailleMot = strlen(motSecret);

lettreTrouvee = malloc(tailleMot * sizeof(int)); // On alloue dynamiquement le tableau lettreTrouvee (dont on ne connaissait pas la taille au départ)
if (lettreTrouvee == NULL)
exit(0);

for (i = 0 ; i < tailleMot ; i++)
lettreTrouvee[i] = 0;

// On continue à jouer tant qu'il reste au moins un coup à jouer ou qu'on
// n'a pas gagné
while (coupsRestants > 0 && !gagne(lettreTrouvee, tailleMot))
{
printf("\n\nIl vous reste %ld coups a jouer", coupsRestants);
printf("\nQuel est le mot secret ? ");

/* On affiche le mot secret en masquant les lettres non trouvées
Exemple : *A**ON */
for (i = 0 ; i < tailleMot ; i++)
{
if (lettreTrouvee[i]) // Si on a trouvé la lettre n°i
printf("%c", motSecret[i]); // On l'affiche
else
printf("*"); // Sinon, on affiche une étoile pour les lettres non trouvées
}

printf("\nProposez une lettre : ");
lettre = lireCaractere();

// Si ce n'était PAS la bonne lettre
if (!rechercheLettre(lettre, motSecret, lettreTrouvee))
{
coupsRestants--; // On enlève un coup au joueur
}
}


if (gagne(lettreTrouvee, tailleMot))
printf("\n\nGagne ! Le mot secret etait bien : %s", motSecret);
else
printf("\n\nPerdu ! Le mot secret etait : %s", motSecret);

free(lettreTrouvee); // On libère la mémoire allouée manuellement (par malloc)

return 0;
}


char lireCaractere()
{
char caractere = 0;

caractere = getchar(); // On lit le premier caractère
caractere = toupper(caractere); // On met la lettre en majuscule si elle ne l'est pas déjà

// On lit les autres caractères mémorisés un à un jusqu'à l'\n
while (getchar() != '\n') ;

return caractere; // On retourne le premier caractère qu'on a lu
}


int gagne(int lettreTrouvee[], long tailleMot)
{
long i = 0;
int joueurGagne = 1;

for (i = 0 ; i < tailleMot ; i++)
{
if (lettreTrouvee[i] == 0)
joueurGagne = 0;
}

return joueurGagne;
}

int rechercheLettre(char lettre, char motSecret[], int lettreTrouvee[])
{
long i = 0;
int bonneLettre = 0;

// On parcourt motSecret pour vérifier si la lettre proposée y est
for (i = 0 ; motSecret[i] != '\0' ; i++)
{
if (lettre == motSecret[i]) // Si la lettre y est
{
bonneLettre = 1; // On mémorise que c'était une bonne lettre
lettreTrouvee[i] = 1; // On met à 1 le case du tableau de booléens correspondant à la lettre actuelle
}
}

return bonneLettre;
}
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129



/*
Jeu du pendu
Par kram , pour le forum bydjyde
https://bydjyde.forumactif.org/


main.c
------

Fonctions principales de gestion du jeu
*/

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>

#include "dico.h"

int gagne(int lettreTrouvee[], long tailleMot);
int rechercheLettre(char lettre, char motSecret[], int lettreTrouvee[]);
char lireCaractere();

int main(int argc, char* argv[])
{
char lettre = 0; // Stocke la lettre proposée par l'utilisateur (retour du scanf)
char motSecret[100] = {0}; // Ce sera le mot à trouver
int *lettreTrouvee = NULL; // Un tableau de booléens. Chaque case correspond à une lettre du mot secret. 0 = lettre non trouvée, 1 = lettre trouvée
long coupsRestants = 10; // Compteur de coups restants (0 = mort)
long i = 0; // Une petite variable pour parcourir les tableaux
long tailleMot = 0;

printf("Bienvenue dans le Pendu !\n\n");

if (!piocherMot(motSecret))
exit(0);

tailleMot = strlen(motSecret);

lettreTrouvee = malloc(tailleMot * sizeof(int)); // On alloue dynamiquement le tableau lettreTrouvee (dont on ne connaissait pas la taille au départ)
if (lettreTrouvee == NULL)
exit(0);

for (i = 0 ; i < tailleMot ; i++)
lettreTrouvee[i] = 0;

// On continue à jouer tant qu'il reste au moins un coup à jouer ou qu'on
// n'a pas gagné
while (coupsRestants > 0 && !gagne(lettreTrouvee, tailleMot))
{
printf("\n\nIl vous reste %ld coups a jouer", coupsRestants);
printf("\nQuel est le mot secret ? ");

/* On affiche le mot secret en masquant les lettres non trouvées
Exemple : *A**ON */
for (i = 0 ; i < tailleMot ; i++)
{
if (lettreTrouvee[i]) // Si on a trouvé la lettre n°i
printf("%c", motSecret[i]); // On l'affiche
else
printf("*"); // Sinon, on affiche une étoile pour les lettres non trouvées
}

printf("\nProposez une lettre : ");
lettre = lireCaractere();

// Si ce n'était PAS la bonne lettre
if (!rechercheLettre(lettre, motSecret, lettreTrouvee))
{
coupsRestants--; // On enlève un coup au joueur
}
}


if (gagne(lettreTrouvee, tailleMot))
printf("\n\nGagne ! Le mot secret etait bien : %s", motSecret);
else
printf("\n\nPerdu ! Le mot secret etait : %s", motSecret);

free(lettreTrouvee); // On libère la mémoire allouée manuellement (par malloc)

return 0;
}


char lireCaractere()
{
char caractere = 0;

caractere = getchar(); // On lit le premier caractère
caractere = toupper(caractere); // On met la lettre en majuscule si elle ne l'est pas déjà

// On lit les autres caractères mémorisés un à un jusqu'à l'\n
while (getchar() != '\n') ;

return caractere; // On retourne le premier caractère qu'on a lu
}


int gagne(int lettreTrouvee[], long tailleMot)
{
long i = 0;
int joueurGagne = 1;

for (i = 0 ; i < tailleMot ; i++)
{
if (lettreTrouvee[i] == 0)
joueurGagne = 0;
}

return joueurGagne;
}

int rechercheLettre(char lettre, char motSecret[], int lettreTrouvee[])
{
long i = 0;
int bonneLettre = 0;

// On parcourt motSecret pour vérifier si la lettre proposée y est
for (i = 0 ; motSecret[i] != '\0' ; i++)
{
if (lettre == motSecret[i]) // Si la lettre y est
{
bonneLettre = 1; // On mémorise que c'était une bonne lettre
lettreTrouvee[i] = 1; // On met à 1 le case du tableau de booléens correspondant à la lettre actuelle
}
}

return bonneLettre;
}
Admin
Admin
Admin

Messages : 145
Points : 2147511110
Réputation : 0
Date d'inscription : 27/03/2009

https://bydjyde.forumactif.org

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum