YASS_95
Messages postés6Date d'inscriptionjeudi 19 octobre 2006StatutMembreDernière intervention25 janvier 2007
-
24 janv. 2007 à 17:14
YASS_95
Messages postés6Date d'inscriptionjeudi 19 octobre 2006StatutMembreDernière intervention25 janvier 2007
-
25 janv. 2007 à 20:33
Bonjour à tous,
Je travaille sur un projet qui est le jeu de la bataille navale et j'ai
un petit probleme de fonctions... je vais vous expliquer. J'ai une
fonction qui permet de placer les navires manuellement elle marche trés
bien quand je l'execute toute seul, mais des que je la fais preceder de
ma fonction pour le menu ma fonction placerNavire ne reconnais pas les
données que je saisit, c'est bizarre !
Voici mon programme :
(Si vous voyez des erreurs merci de me les signaler je ne suis pas un pro du C, merci d'avance)
/* DIRECTIVE D'INCLUSION */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define MAX 10
#define tailleCase 3
#define tailleTab 11
/* Structure coordonnees qui fait reference a une case des grilles ************/
YASS_95
Messages postés6Date d'inscriptionjeudi 19 octobre 2006StatutMembreDernière intervention25 janvier 2007 25 janv. 2007 à 20:33
C'est bon j'ai trouvé ou été l'erreur c'été un probleme de getchar lors
de la saisie des coordonnées, en fait losqu'un caractere est precedé
d'un nombre il faut mettre un getchar avant le %c, donc l'erreur se
trouvé dans le placerNavireManu, j ai mis les getchar au bon endroit et
maintenant ça marche bien !!
Merci encore Yann pour le temps que tu m'as consacré !!
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201626 24 janv. 2007 à 17:32
J'ai survolé ce code hmm....
ceci est bizarre :
do
{
printf("\n");
printf("Choisissez la difficulte du jeu (1/2) : ");
scanf("%d", ¶mJoueur1.difficulte_jeu);
printf("\n");
}
while ((paramJoueur1.mode_jeu< 1) || (paramJoueur1.mode_jeu > 2));
acx01b
Messages postés280Date d'inscriptiondimanche 7 septembre 2003StatutMembreDernière intervention 8 juillet 20146 24 janv. 2007 à 22:45
salut j'ai regardé ton code mais je me suis arrété à la ligne 198 : if (compteur==(type.taille+2)*3)
car je n'ai pas compris ce qu'était cette variable compteur
sinon j'ai remplacé tes getchar(); par des while (getchar() != '\n');
tes noms de champ de structure et tes noms des variables en général ne sont pas claires du tout
il n'aident pas à comprendre le code
et j'ai remarqué que tu passais des structures entières en paramètre des fonction,
c'est une mauvaise habitude pourquoi ne pas passer le pointeur plutôt ?
enfin, si j'ai bien compris c'est ta fonction verif_coordonnees qui te renvoie toujours faux ?
hé bien refais la !
while(1) {
if (i et j ne sont pas en dehors de la grille , et pion[i][j] = vide) return 0;
i ++ si position = verticale
j ++ si position = horizontale
}
return 1;
Vous n’avez pas trouvé la réponse que vous recherchez ?
YASS_95
Messages postés6Date d'inscriptionjeudi 19 octobre 2006StatutMembreDernière intervention25 janvier 2007 24 janv. 2007 à 22:54
Desolé pour les noms de mes variable et structures j essaie de les faire le plus clair possible !!
Avec les modification que tu fais est ce que ça marche !!?
ps : en fait le compteur sert a verifier que toutes les cases qui
entourent le bateaux sont biens vide ("~~") pour ne pas que les bateaux
se touchent !!
et (taille+2)*3 correspond a toutes les case qui entoure le navire + les case du navire !!
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201626 24 janv. 2007 à 23:05
Moi ce que je te conseille, c'est de penser ton programme plus modulaire.
Cad une structure par fichier .h contenant les fonctions, constantes et variables externes qui s'y rapporte.
Des fonctions plus petites et plus précises, sans redondance, ex : une fonction d'affichage paramétrée servant à tout le programme.
Des sorties de debug dans un fichier pour valider TOUTES les valeurs changeantes.
Des ErrorHandlers pour chaque calculs.
En gros plus de reflexion en amont, avant de coder.
YASS_95
Messages postés6Date d'inscriptionjeudi 19 octobre 2006StatutMembreDernière intervention25 janvier 2007 25 janv. 2007 à 00:23
J'ai pas vraiment réussi à faire marcher les fichiers que tu m'as passer !!
Et tu me dis que ma fonction verif_coordonnées ne fonctionne pas, ce
qui me parait bizarre c'est pourquoi elle ne pose pas de probleme quand
j'execute la fonction placerNavireManu toute seul !!
Je pense qu'il doit peut etre y avoir un conflit entre les appels de fonctions dont j'ignore la cause.
Cependant, je te remercie deja pour avoir bien voulu prendre de ton temps pour essayer de resoudre mon probleme.
Donc si tu trouve d'ou vient le probleme je reste à l'écoute et pendant ce temps je cherche de mon coté.