bonjour,
j'ai un problème avec mon programme de bataille navale :
Tout d'abord j'ai crée un bateau avec cette fonction :
Ensuite j'utilise cette action qui permet de placer les informations d'un bateau pointé dans les cases correspondantes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 typedef struct { int colonne; int ligne; int longueur; char orientation; int nbtouches; }bateau; typedef struct { bateau *contenu; int etat; }Case; typedef struct { Case tableau[9][9]; }grille; bateau SaisirBateau (int l) { bateau b; b.longueur = l; printf("\nLigne 1ere case : ",b.ligne); scanf("%d",&b.ligne); printf("\nColone 1ere case : ",b.colonne); scanf("%d",&b.colonne); printf("\nOrientation : ",b.orientation); scanf("%c%c",&b.orientation,&b.orientation); b.nbtouches=0; return (b); }
La voici :
le probleme c'est que lorsque je retourne le pointeur sur un bateau placé à une case (i,j) du tableau avec cette fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 void Ajouterbateau (bateau *pb, grille *g) { int i,j,l,x; char o; l = (*pb).longueur; i = (*pb).ligne; j = (*pb).colonne; o = (*pb).orientation; (*pb).nbtouches=0; if (o=='b') { for (x=0;x<l;x++) { g->tableau[i][j].contenu = pb; g->tableau[i][j].etat = 1; } } else if (o=='d') { for (x=0;x<l;x++) { g->tableau[i][j].contenu = pb; g->tableau[i][j].etat = 1; } } }
je constate que ce pointeur est le même pour tous les bateaux rentrés !!!! Lorsque je veux modifier les informations d'un bateau à la case (i,j), il me modifie en fait celles du dernier bateau rentré. Comprend pô
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 bateau* casebateau (grille g,int i, int j) { return(g.tableau[i][j].contenu); }
En fait je voudrai que les pointeurs soient differents pour chaque bateau.
voila si vous pouvez me donner un ptit coup de main, c'est pas de refu![]()
Partager