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
| #include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#define N 5
char * un_mot(){
int i;
char *dico[N]= {"maison", "mitochondrie", "escherichia", "institut", "programation"}; //remplissage de notre tableau de mot
srand((unsigned int) time(NULL));
i=rand()%N; //on choisit un chiffre aléatoire compris entre o et N-1
return dico[i];
}
char * enlever_une_lettre(char * mot){
char *motReponse;
char motinitial[strlen(mot)+1];
strcpy(motinitial,mot);
char comp[strlen(mot)+1]; //va nous servir à la comparaison du mot mélanger et du mot taper sur le clavier par le joueur!!
strcpy(comp,mot);
int longueur_mot,c,i,j;
char *copieChaine;
longueur_mot=strlen(motinitial);
srand((unsigned int) time(NULL));
copieChaine=malloc(sizeof(char)*(longueur_mot+1)); //on crée une chaine de caractere qui aura la même taille que notre chaine initiale
motReponse=malloc(sizeof(char));
for(i=0;i<longueur_mot;i++){
c=rand()%(strlen(motinitial)); //on cherche à obtenir un nombre aléatoire compris etre 0 et la longueur de la chaine étudiée ,attention pour que la longueur de la chaine soit recalculée à chaque tour de la boucle il ne faut pas ecrire longueur_mot mais bie strlen(chaine)
copieChaine[i] =motinitial[c]; //on copie le caratere de la position aléatoire dans notre chaine copie
for(j=c;j<strlen(motinitial);j++)
motinitial[j]=motinitial[j+1]; //le dernier caractere de notre chaine prend la place du caratere à la position "c", ain si à chaque tour de boucle le caratere est éliminé
motinitial[strlen(motinitial)]='\0';
// longueur_mot --;
}
// copieChaine[longueur_mot-1]=motinitial[0];
printf("le mot melange: %s \n", copieChaine);
printf("votre réponse:\n");
scanf("%s",motReponse);
if (strcmp(comp, motReponse) == 0) // Si strcmp renvoie 0 (chaînes identiques)
{
printf("%s \n",comp);
printf("Bravo!\n");
}
else
{
printf("%s \n",comp);
printf("Perdu!\n");
}
return 0;
}
int main(){
enlever_une_lettre(un_mot());
return 0;
} |
Partager