Projet programmation c

Disponible uniquement sur Etudier
  • Pages : 15 (3502 mots )
  • Téléchargement(s) : 0
  • Publié le : 27 novembre 2011
Lire le document complet
Aperçu du document
Notre programme c et une simulation de jeu mot croises , il permet au utilisateurs plusieurs options 1. le chargement d’un grille particulière ; 2. la visualisation des cases de la grille et des définitions des mots ; 3. la saisie d’un mot ou d’une ou plusieurs lettre, et leur positionnement dans la grille (horizontalement ou verticalement) ; 4. la vérification de la validité d’un mot ; 5. lavérification de la validité finale de la grille ; l'application se compose de deux patie ,une partie pour gere tous les options presente precidament et une autre pour la mise de l'interface graphique (mise en page +actions des boutons ) 1. pour commence ,une grille est modelise par une structure qui regroupe les informations necessaires pour rependre a tous les commande de l'utilisateur structgrille_s { char path[256]; /* Path du fichier */ int dimension; /* Dimension de la grille */ int n_horizontal; /* Nombre d'indices des mots à l'horizontal */ int n_vertical; /* Nombre d'indices des mots à la verticale */ struct indice_s **indice_horizontal; /* Indices des mots à l'horizontal */ struct indice_s **indice_vertical; /* Indices des mots à la verticale */ char **tableau; /* Grille remplie parle joueur */ char **tableau_solution; /* Grille solution, contenant les mots à trouver */ }; le traitemant des commendes de l'utilisateur son tous regroupe dans le fichier parser.c dans ce fichier existe une seul fonction qui est lire_commande(struct grille_s **grille,char buffer[32]) qui prend en entre la grille de jeu deja charger et la commande de l'utilisateur sous forme d'une chaine decaratere de la forme suivante : identificatuer de commande +donnees necessaire pour l'execution de la commande code c : int { struct grille_s *g = *grille; char ok; ok = 0; printf("> "); fflush(stdout); if (buffer== NULL) { perror("fgets"); si la commade est null ,rien a faire return 1; return 1; } lire_commande(struct grille_s **grille,char buffer[32])

presentation des fonctionalites de programme : buffer[strlen(buffer) ] = 0; /* on enleve le retour chariot */ if (!strncmp(buffer, "charger ", 8)) { if (g != NULL) detruit_grille(grille); pour charger la grille

vider la stucture grille si elle existe deja

printf("Chargement de la grille '%s'\n", &buffer[8]); *grille = charger_grille(&buffer[8]); charger_grille est une fonction devlope dans le fichier grille.c g = *grille; if (g ==NULL) fprintf(stderr, "Grille invalide.\n"); else ok=1; } else if (!strncmp(buffer, "def", 3)) pour afficher les definitions des mots verticals et horizentals { if (g == NULL) fprintf(stderr, "Aucune grille n'est chargée.\n"); else { if (strlen(buffer) indice_horizontal, g->n_horizontal); afficher indices est devlope dans le fichier indices.c printf("Définitions des mots à la verticale :\n");afficher_indices(g->indice_vertical, g->n_vertical); } else { if (buffer[4] == 'h') { printf("Définitions des mots à l'horizontal :\n"); afficher_indices(g->indice_horizontal, g->n_horizontal); } else if (buffer[4] == 'v') { printf("Définitions des mots à la verticale :\n"); afficher_indices(g->indice_vertical, g->n_vertical); } else fprintf(stderr, "Commande des définitions des mots invalide.\n"); } }}

else if (!strncmp(buffer, "grille", 6)) pour afficher la grille en cours { if (g == NULL) fprintf(stderr, "Aucune grille n'est chargée.\n"); else { printf("Grille '%s' de dimension: %d. Nbre d'indices H: %d. Nbre d'indices V: %d.\n", g>path, g->dimension, g->n_horizontal, g->n_vertical); afficher_tableau(g->tableau, g->dimension); affiche r_tableau est devlope dans le fichier tableau.c } }else if (!strncmp(buffer, "ecrire ", 7)) pour saisir un mot dans la grille { if (g == NULL) fprintf(stderr, "Aucune grille n'est chargée.\n"); else { int x, y; char tmp[256]; strcpy(tmp,buffer+13); buffer[12]='\0'; if (strlen(buffer) >= 10 && (buffer[7] == 'h' || buffer[7] == 'v')) { if (sscanf(&buffer[9], "%d %d", &x, &y) == 2 && x >= 1 && y >= 1 && x dimension && y dimension) {

if (tmp==...
tracking img