Problème avec un appel de fonction
Résolu
the.co
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21331 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 }
A voir également:
- Problème avec un appel de fonction
- Fonction si et - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Appel privé - Guide
- Alexia organise un appel vidéo avec ses grand-parents qui ne veulent pas installer de logiciel ou d’application, ni créer un compte. - Forum Windows
- La zone de données passée à un appel système est insuffisante - Windows 11
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 =)
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();
}
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();
}
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 ;-)