Пример #1
0
int main(int argc, char* argv[])
{
    char lettre = 0; // Stocke la lettre proposée par l'utilisateur (retour du scanf)
    char motSecret[] = "MARRON"; // C'est le mot à trouver
    int lettreTrouvee[6] = {0}; // Un tableau de booléens. Chaque case correspond à une lettre du mot secret. 0 = lettre non trouvée, 1 = lettre trouvée
    int coupsRestants = 10; // Compteur de coups restants (0 = mort)
    int i = 0; // Une petite variable pour parcourir les tableaux

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

    // On continue à jouer tant qu'il reste au moins un coup à jouer ou qu'on
    // n'a pas gagné
    while (coupsRestants > 0 && !gagne(lettreTrouvee))
    {
        printf("\n\nIl vous reste %d 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 < 6 ; 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))
        printf("\n\nGagne ! Le mot secret etait bien : %s", motSecret);
    else
        printf("\n\nPerdu ! Le mot secret etait : %s", motSecret);

        return 0;
}
Пример #2
0
void hangedGame(char* word)
{
    int i;
    int* found;
    int size = strlen(word);
    found = malloc(size * sizeof(int));

    for ( i = 0; i < size; i++)
    {
        found[i] = 0;
    }

    char character = 0;

    int loop = 10;

    while (loop && !checkWin(word, found))
    {
        printf("Il vous reste %d coups a jouer \n", loop);
        printf("Quel est le mot secret ? ");
        showWord(word, found);
        printf("\nProposez une lettre : ");
        character = lireCaractere();
        checkCharacter(word, found, character);
        loop--;
    }

    if(checkWin(word, found))
        {
            printf("\nBravo ! Vous avez gagné en %d coups !", loop);
            printf("\nLe mot secret était bien '%s'", word);
        }
    else
    {
        printf("Perdu ! Le mot secret était : %s", word);
    }
    free(found);
}
Пример #3
0
int main(int argc, char *argv[])
{
    FILE *fichierMot = NULL;
    int nombreMot = 0, positionMot = 0, longeurMot = 0, mot[15];
    int motDeviner[15];
    int entre = 0, positionCaractere = 0, j = 0, i = 0;
    int essaiRestant = 10, nombreEssai = 0;

    fichierMot = fopen("mot", "r");	/* On ouvre le fichier */
    if (fichierMot == NULL) {	/* On teste pour savoir si tou c'est bien passé */
	printf("Le fichier \"mot\" ne peut être ouvert\n");
	return 1;
    }

    nombreMot = compterMot(fichierMot);	/* Compte le nombre de mot */
    /* Ceci est uniquement pour le debugage. */
    printf("Ceci est le nombre de mot dans le fichier 'mot' %d\n",
	   nombreMot);

    /* Position du mot dans la liste de tout les mots. */
    positionMot = nombreAleatoire(nombreMot);

    /* Longeur du mot en caractere. */
    /* On sort la longeur du mot en même temps */
    longeurMot = lireMot(fichierMot, positionMot, mot);
    /* On affiche ensuite la longeur du sus-choisi mot */
    printf("Ceci est la longeur en caractere du mot %d\n", longeurMot);

    /* Initialisation du tableau */
    for (i = 0; i <= longeurMot; i++) {
	motDeviner[i] = '*';
    }
    /* Démarrage du jeu a proprement parler. */
    printf("\nBienvenue dans mon pendu.\n");
    printf("Un mot a été choisi, vous avez 10 chances.\n");
    printf("Bonne chance !\n");

    while (essaiRestant > 0) {	/* Boucle principale */
	int j = 0, k = 0;	/* Afficher le nombre de caractere restant. */
	for (j = 0; j < longeurMot; j++) {
	    printf("%c", motDeviner[j]);
	}

	/* On affiche le prompt. */
	printf("\n> ");
	entre = lireCaractere();

	positionCaractere =
	    comparerCaractere(entre, mot, motDeviner, longeurMot);

	if (positionCaractere != entre) {
	    essaiRestant--;
	    printf
		("Il reste %d essai restant avant une mort certaine...\n",
		 essaiRestant);
	}

	/* Donc on compare les deux tableau de "mot" et
	   on incrémente k a chaque caractere valide */
	for (j = 0; j < longeurMot; j++) {
	    if (mot[j] == motDeviner[j])
		k++;
	}
	/* Si k est égual à longeurMot cela veux dire
	   que les deux chaines sont identiques.
	   Donc, victoire! */
	if (k == longeurMot) {
	    printf("Vous avez gagner! En %d coups!\n", nombreEssai);
	    fclose(fichierMot);
	    return 0;
	}
	nombreEssai++;
    }

    fclose(fichierMot);
    return 0;
}