Problème avec un appel de fonction

Résolu/Fermé
the.co Messages postés 27 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 18 février 2013 - 8 déc. 2011 à 11:08
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 8 déc. 2011 à 11:39
Bonjour à tous.
j'ai un soucis (je suppose simple à résoudre mais blocage complet)

J'ai deux fonctions en .c je souhaiterai appeler la fonction labyrinthe (appelé test) dans ma fonction Menu. Comme ça dès que les joueurs ont tapé leur nom, le labyrinthe s'affiche. Mais je n'y arrive pas.
Quelqu'un aurait une solution?
voici mes deux codes:


AFFICHAGE DU LABYRINTHE

#include <stdio.h>
#include <stdlib.h>
#include "FonctionsPrototype.h"
 
int test()
{
 
   char labyrinthe[15][15];
      FILE* fichier = NULL;
    int caractereActuel = 0;
    int ligne = 0;
    int colonne = 0;
    fichier = fopen("C:\\Users\\Coline\\PROJET VERY OFFICIEL\\labyrinthe.txt", "r");
 
    if (fichier != NULL)
    {
        caractereActuel = fgetc(fichier); // On initialise caractereActuel
 
	// Boucle de lecture des caractères un à un
 
    while (caractereActuel != EOF) // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
	{
 
                if (caractereActuel == 10)
                {
                            ligne++;
                            colonne=0;
                            printf("\n");
                }
                else
                {
                            labyrinthe [ligne][colonne] = caractereActuel;
                            if (caractereActuel == 'M')
                            {
                                printf("%c", (219));
                            }
                            else
                            {
                                printf("%c", caractereActuel);
                            }
 
                            colonne++;
                }
     caractereActuel = fgetc(fichier); // On lit le caractère suivant
	}
	// lecture du tableau caractère par caractère, stocké dans char current, affichage du caractère
 printf ("\n");
fclose(fichier);
    }
 
  system("PAUSE");
  return 0;
}




MENU QUI QUAND ON APPUIE SUR 1 DEMANDE LES PRÉNOMS ET ENSUITE DEVRAIT AFFICHER LE LABYRINTHE


#include <stdio.h>
#include <stdlib.h>
#include "FonctionsPrototype.h"
 
int Menu (Joueur *joueurA, Joueur *joueurB)
{
    //printf("%d", joueurA.pos_x);
    int  choix=0;
    do
    {
     system("cls"); //Effacer les lignes du terminal precedent
     printf("\nHarry trotteur et le Panda cruel\n\n");
     printf("--- Menu ---\n");
     printf("1.) Pour commencer la partie, c'est ici!!\n");
     printf("2.) Quelques explications\n");
     printf("3.) Arreter\n\n");
     printf("tapez votre choix\n");
     scanf("%d", &choix);
     //lis la valeur que rentre l'utilisateur
 
 
     if( choix == 1) //Si l'utilisateur rentre la valeur "1" le programme va effectuer la fonction qui est en dessous
        {
        printf("comment s'appelle le joueur A? \n"); //On demande ici d'entrer le nom des 2 joueurs de la partie
        scanf("%s", joueurA->nom);
        printf("comment s'appelle le joueur B? \n");
        scanf("%s", joueurB->nom);
        }
 
 
     else if( choix == 2) //Si l'utilisateur rentre la valeur "2" il  a accès aux instructions du jeu
        {
        printf("Les commandes pour le jeu c'est ici!\n\n\n");
        printf("Ce jeu se joue a deux joueurs. \n\n");
        printf("Trouver le Panda cruel (P) avant l'autre.\n");
        printf("Rejoignez le vite dans sa case\n");
        printf("Vous vous transformerez en Harry trotteur PARTIE GAGNEE.\n\n");
        printf("Pour se deplacer suivez le guide:\n\n");
        printf("    D : droite\n\n");
        printf("    G : gauche\n\n");
        printf("    H : haut\n\n");
        printf("    B : bas\n\n");
        printf("Tapez la lettre puis le nombre de cases dont vous voulez vous deplacer\n");
        printf("exemple: D5 pour 5 cases vers la droite\n\n\n");
        printf("Des aides sont disseminees ca et la dans le labyrinthe:\n");
        printf("Il existe en effet 2 objets magiques : \n");
        printf("          \n\n");
        printf("          LES FIOLES (F) a vous de les recuperer avant l'autre\n");
        printf("   Vous n'avez qu'a passer par la case d'une fiole.\n ");
        printf("   celle ci se rajoute a votre inventaire automatiquement\n");
        printf("   les fioles permettent de passer au travers des murs \n");
        printf("   ATTENTION. une fiole = un mur !!!\n\n\n");
        printf("          LES CAPES (C) \n");
        printf("   Vous n'avez qu'a passer par la case d'une cape.\n ");
        printf("   celle ci se rajoute a votre inventaire automatiquement\n");
        printf("   ATTENTION: Equiper la cape compte comme un deplacement\n");
        printf("   Endosser la cape ou la deposer s'effectue au moyen de lettres:\n");
        printf("               C : Vous endossez la cape vous rendant invisible.\n");
        printf("               P : Vous deposez la cape vous rendant de nouveau visible.\n\n");
        printf("   L'autre joueur ne pourra pas vous traverser.\n");
        printf("   Il se retrouvera donc bloquer (meme s'il a une fiole)\n");
        printf("\n\nContinuer...");
        system("PAUSE");
        }
       else if( choix == 3)
            {
            exit(EXIT_SUCCESS);
            }
       else if( choix != 1 && choix != 2 && choix != 3) //Si la commande rentrée ni 1 ni 2 ni 3 le programme va afficher un message d'erreur et réafficher le menu
            {
            printf("Veuillez entrer un nombre correct.\n\n"); //message d'erreur
            system("PAUSE");
            }
     }
     while (choix != 1); //tant que la personne ne commence pas à jouer elle retombera sur le menu principal. Elle peut donc voir les regles à volonté avant de commencer à jouer
}

4 réponses

the.co Messages postés 27 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 18 février 2013 1
8 déc. 2011 à 11:32
c'est bon j'ai trouvé!! j'avais changé de place le fichier labyrinthe txt et simplement oublié de changer l'adresse ou le trouvé!! grrrr tellement bête!!

Merci quand même =)
1
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
8 déc. 2011 à 11:39
Salut,

Tu aurais du avoir un message d'erreur lors de la compilation.
C'est important de donner le message d'erreur en plus de code pour pouvoir trouver ce qui ne va pas.

En tous cas c'est bien que tu as trouvé l'erreur ;-)
0
titus22 Messages postés 1918 Date d'inscription jeudi 1 décembre 2011 Statut Membre Dernière intervention 16 février 2012 634
8 déc. 2011 à 11:14
tu n'appele pas ta fonction TEST !

if( choix == 1) //Si l'utilisateur rentre la valeur "1" le programme va effectuer la fonction qui est en dessous
{
printf("comment s'appelle le joueur A? \n"); //On demande ici d'entrer le nom des 2 joueurs de la partie
scanf("%s", joueurA->nom);
printf("comment s'appelle le joueur B? \n");
scanf("%s", joueurB->nom);
test();
}
0
the.co Messages postés 27 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 18 février 2013 1
8 déc. 2011 à 11:17
oups j'ai du envoyé la mauvaise code car je l'avais marqué exactement comme toi!! justement quand je l'appel, en la mettant exactement comme tu l'as mets, ca ne marche pas, le programme plante après avoir entré le prénom du joueurB :/...
0
titus22 Messages postés 1918 Date d'inscription jeudi 1 décembre 2011 Statut Membre Dernière intervention 16 février 2012 634
Modifié par titus22 le 8/12/2011 à 11:23
C'est à cause de ton .h
Il faut un .h par fichier .c car la tu fait une boucle infinie.
" Votre temps est limité, ne le gâchez pas en menant une existence qui n'est pas la vôtre. " S.Jobs
0