IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Amelioration du jeu du pendu


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut Amelioration du jeu du pendu
    Bonjour,
    J'ai un entretien d'embauche la semaine prochaine dans une boite faisant de la programation embarque.
    Je viens tout juste d'avoir mon diplome, je n'ai aucune experience dans ce domaine.
    D'apres ce que j'ai lu, la gestion de la memoire est tres critique.

    Voici un petit jeu du pendu que j'ai fait, je souhaiterai savoir quelles modification je peux y apporter.

    Merci

    PS: Si certains d'entre vous peuvent me donner quelques conseille general je suis preneur egalement. Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    #include <stdio.h> //Include necessaire pour les E/S
    #include <stdlib.h>
    #include <ctype.h>
    #include <time.h> //include necessaire pour la gestion du temps (rand-time)
    #include <string.h>
    #include "dico.h"
     
     
    char* copiemodif(char* ,char* );
    char lireCaractere();
    int nombreAleatoire(int nombreMax);
     
     
    int main(int argc, char* argv[])
    {
    	char essais = 10; //Variable definissan le nombre d'essais de l'utilisateur
     
    	FILE* fichier = NULL; //Fichier dans lequel se trouve des mots que l'on va prendre au hasard et qu'il faudra trouver
    	char _Buf[10] = ""; // Chaine de caracteres contenant un mot a trouver. par exemple "voiture"
    	char resultat[10] = ""; // Chaine de caracteres affichant a l'ecran le mot a trouver  par exemple "v***ur*"(pour voiture)
     
    	char* caractereRenvoye = NULL;
     
    		/* L'ordinateur choisi un mot du fichier dico	*/	
    	fichier = fopen("dico.txt", "r");//On ouvre un fichier en lecture uniquement
    	if (fichier)//on verifie la validite de notre pointeur
    	{
    		int index = 0;
     
    		while (fgets(_Buf, 10, fichier)) // Dans cette boucle, nous comptons le nombre de mots qui se trouvent dans le fichier
    			++index;
    		fseek(fichier, 0, SEEK_SET);// On replace le curseur a l'origine
    		int indexeMot = nombreAleatoire(index); //On choisi un nombre au hasard inferieur ou egal au nombre de mots se trouvant dans le fichier
    		index = 1; 
    		do{			// cette boucle nous renvoie le mot corespondant au chiffre tombe par hasard, il est stocke dans _Buff
    			fgets(_Buf, 10, fichier);
    			index++;
    		}while(index<indexeMot);
    		copiemodif(resultat,_Buf); // fonction qui remplace chaque lettre du mot par le caractere '*'
    		fclose(fichier);//Ferme le fichier
    	}
     
    	else
    		printf("l'ouverture de dico.txt a echoue\n");
    	/*	On interroge l'utilisateur	*/
    	char c='*';
    	while(essais && strcmp(_Buf,resultat)) //Tant que le nombre d'essais maximal n'est pas atteind, ou que le mot n'a pas ete trouve
    	{
    		char flag=0;
    		printf("Vous avez %d essais\n",essais);
    		printf("Veuillez entrer une lettre: ");
    		c=lireCaractere();
    		for (int i = 0; _Buf[i] != NULL; i++)
    			if(_Buf[i] == c)
    			{
    				flag = 1;
    				*(resultat +i) = _Buf[i];
    			}
    		if (!flag)//flag nous sert pour ne pas decrementer le nombre d'essai si l'utilisateur a entre une lettre valide
    			essais--;
     
    		printf("%s\n",resultat);
    	}
     
    	essais ? printf("Felicitation!!\n") : printf("Perdu!!\n") ;
    	system("Pause");
    	return 0;
    }
     
     
     
    /*	Fonctions necessaire a la realisation du pendu	*/
     
     
    int nombreAleatoire(int nombreMax)
    {
        srand(time(NULL));
        return (rand() % nombreMax);
    }
     
    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
     
    }
     
    char* copiemodif(char* resultat,char* _Buf)
    {
    	int i=0;
    	char* tmp = &_Buf[0];
    	for (i; *tmp != NULL;i++)
    	{
    		if (*tmp == '\n')
    		resultat[i]='\n';
    		else
    			resultat[i]= '*';
    		tmp++;
    	}
    	return resultat;
    }

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Par défaut
    Essaye de balancer des listes chainées avec types de tri (insertion, fusion etc.), des preuves que tu maitrises l'allocation (statique et dynamique).

    Dans le cadre de ton pendu tu peux par exemple demander à un utilisateur s'il veut rajouter des mots dans la liste déja présente (dans le fichier que tu fopen en l'occurence).

    Tu peux faire en sorte que les mots de ce fichier soient tries par ordre alphabétique (tri par insertion normalement).

    Ca montrera que tu fais tout pour minimiser l'utilisation des ressources à travers l'utilisation des listes chainées (full pointeur :p) et qu'en plus tu fais un peu d'algo

    Je sais pas si c'est le genre de conseil que tu souhaites :p, mais bon, c'est le genre de pendu amélioré dont tu parles je pense

  3. #3
    Membre éclairé
    Homme Profil pro
    Programmeur PHP
    Inscrit en
    Août 2009
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Israël

    Informations professionnelles :
    Activité : Programmeur PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 244
    Par défaut
    Oui, merci beaucoup.
    Meme des conseils en general concernant la programmation embarquee, car je n'ai que tres peu de connaissance dans ce domaine (voir meme aucune).

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Sans vouloir te faire peur, je ne pense pas qu'un jeu de pendu t'aide pour de la programmation embarquée. Ce terme est très vaste, il faudrait plus de précision sur ce que tu pourrais faire, mais je me renseignerais plutôt sur les micro-contrôleurs, les DSP, Linux embarqué, etc.

Discussions similaires

  1. Code en bourne shell du jeu Le "PENDU"
    Par piment dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 20/07/2007, 14h17
  2. Jeu Bonhomme pendu
    Par yinyann86 dans le forum Delphi
    Réponses: 11
    Dernier message: 14/11/2006, 17h03
  3. Le jeu du pendu.
    Par giggs dans le forum C
    Réponses: 5
    Dernier message: 31/10/2006, 13h40
  4. jeu du pendu
    Par krachik dans le forum Langage
    Réponses: 5
    Dernier message: 24/10/2006, 12h48
  5. Réponses: 4
    Dernier message: 24/03/2006, 13h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo