Problème avec un appel de fonction
Résolu
the.co
Messages postés
30
Statut
Membre
-
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
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
MENU QUI QUAND ON APPUIE SUR 1 DEMANDE LES PRÉNOMS ET ENSUITE DEVRAIT AFFICHER LE LABYRINTHE
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
-
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 =) -
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();
}
-
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 :/...
-
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