[C] Un petit jeu du pendu
Résolu
jerryp
Messages postés
141
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai commncé l'apprentissage du langage C,
et j'aimerais programmer un petit jeu du pendu...
Seulement j'ai un petit problème (non, c'est vrai ?!?)...
Le mot que le joueur recherche est caché par des étoiles *...
Et lorsque le joueur entre une lettre au moyen d'une fonction "maison", je ne sais pas comment faire pour remplacer l'étoile correspondant à la lettre, si toutefois celle-ci se trouve bien dans le mot...
Voici mon code :
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
char lireCaractere();
int main(int argc, char *argv[])
{
long nombreCoups = 10;
char motMystere[] = "ROUGE";
long nombreCaracteres = 0;
long i = 0;
char caractereEntre = "";
printf("Bienvenue dans le pendu\n\n");
do
{
i = 0;
printf("Il vous reste %ld coups a jouer\n", nombreCoups);
nombreCaracteres = strlen(motMystere);
printf("Quel est le mot cache : ");
do
{
printf("*");
i++;
} while(i != nombreCaracteres);
printf("\n");
printf("Proposez une lettre : ");
caractereEntre = lireCaractere();
if(strchr(motMystere, caractereEntre) == 0)
{
nombreCoups--;
}
} while(nombreCoups != 0);
system("PAUSE");
return 0;
}
char lireCaractere()
{
char caractere = 0;
caractere = getchar();
caractere = toupper(caractere);
while (getchar() != '\n') ;
return caractere;
}
Je vous remercie d'avance,
cordialement,
jerrypeeren
EDIT : je sais que le code n'est pas encore complet et qu'il peut encore être optimisé (par exemple lors de la déclaration des variables), mais je changerai tout ça quand le jeu fonctionnera complètement... L'optimisation, c'est pour après !
J'ai commncé l'apprentissage du langage C,
et j'aimerais programmer un petit jeu du pendu...
Seulement j'ai un petit problème (non, c'est vrai ?!?)...
Le mot que le joueur recherche est caché par des étoiles *...
Et lorsque le joueur entre une lettre au moyen d'une fonction "maison", je ne sais pas comment faire pour remplacer l'étoile correspondant à la lettre, si toutefois celle-ci se trouve bien dans le mot...
Voici mon code :
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
char lireCaractere();
int main(int argc, char *argv[])
{
long nombreCoups = 10;
char motMystere[] = "ROUGE";
long nombreCaracteres = 0;
long i = 0;
char caractereEntre = "";
printf("Bienvenue dans le pendu\n\n");
do
{
i = 0;
printf("Il vous reste %ld coups a jouer\n", nombreCoups);
nombreCaracteres = strlen(motMystere);
printf("Quel est le mot cache : ");
do
{
printf("*");
i++;
} while(i != nombreCaracteres);
printf("\n");
printf("Proposez une lettre : ");
caractereEntre = lireCaractere();
if(strchr(motMystere, caractereEntre) == 0)
{
nombreCoups--;
}
} while(nombreCoups != 0);
system("PAUSE");
return 0;
}
char lireCaractere()
{
char caractere = 0;
caractere = getchar();
caractere = toupper(caractere);
while (getchar() != '\n') ;
return caractere;
}
Je vous remercie d'avance,
cordialement,
jerrypeeren
EDIT : je sais que le code n'est pas encore complet et qu'il peut encore être optimisé (par exemple lors de la déclaration des variables), mais je changerai tout ça quand le jeu fonctionnera complètement... L'optimisation, c'est pour après !
A voir également:
- Jeu du pendu en c
- Jeu du pendu - Télécharger - Vie quotidienne
- 94 jeu - Télécharger - Puzzle & Réflexion
- 94 degrés jeu - Télécharger - Divers Jeux
- Jeu zuma - Télécharger - Jeux vidéo
- Logo jeu - Télécharger - Jeux vidéo
8 réponses
c'est pas trop dure les malloc suffit de trouver la taille du mot avec un strlen pour savoir la taille a donné au mot avec un malloc ensuite tu rempli avec des '*'
ça donne ça
ça donne ça
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #include <string.h> char lireCaractere(); void trouverEtRemplacer(char motSecret[], char motTrouver[], char lettre, long nombreCaracteres); int main(int argc, char *argv[]) { long nombreCoups = 10; char motMystere[] = "ROUGE"; long nombreCaracteres = 0; long i = 0; char caractereEntre; char *motDecouvert; printf("Bienvenue dans le pendu\n\n"); nombreCaracteres = strlen(motMystere); motDecouvert = (char *) malloc(nombreCaracteres * sizeof(char)); for(i=0;i<nombreCaracteres;i++) motDecouvert[i]='*'; do { i = 0; printf("Il vous reste %ld coups a jouer\n", nombreCoups); printf("Quel est le mot cache : "); do { printf("%c", motDecouvert[i]); i++; } while(i != nombreCaracteres); printf("\n"); printf("Proposez une lettre : "); caractereEntre = lireCaractere(); trouverEtRemplacer(motMystere, motDecouvert, caractereEntre, nombreCaracteres); if(strchr(motMystere, caractereEntre) == 0) { nombreCoups--; } } while(nombreCoups != 0); system("PAUSE"); 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 (pour les effacer) while (getchar() != '\n') ; return caractere; // On retourne le premier caractère qu'on a lu } void trouverEtRemplacer(char motSecret[], char motTrouver[], char lettre, long nombreCaracteres) { char caractereActuel; long i = 0; do { caractereActuel = motSecret[i]; if(caractereActuel == lettre) { motTrouver[i] = motSecret[i]; } i++; }while(i!= nombreCaracteres); }il te reste plus qu'a l'optimiser...