N00b : je n'arrive pas à remplir mon tableau :/ - Java - Programmation
Marsh Posté le 16-02-2004 à 13:24:00
outre les très nombreuses aberrations qu'il y a dans ton code, l'erreur vient du fait que dans le constructeur, ce n'est pas l'attribut de classe mer que tu initialises, mais une variable locale au constructeur. Faut que tu vires le "int[][]"
Marsh Posté le 16-02-2004 à 13:24:45
Tout en static, putain
Marsh Posté le 16-02-2004 à 13:25:45
Ca veut pas dire que ton tableau est rempli de null, ca veut dire que tu n'as pas alloué de mémoire pour ton tableau.
1) il n'y a aucune raison pour que mer hauteur et largeur soient static.
2) une fois que mer ne sera plus static tu n'auras plus besoin de la redéclarer dans ton constructeur et donc tu pourra l'instancier correctement.
Marsh Posté le 16-02-2004 à 13:25:46
le vieux barbare....
Citation : |
un peu en effet...
Marsh Posté le 16-02-2004 à 13:26:15
Pierre Tramo
Marsh Posté le 16-02-2004 à 13:26:16
j'ai trois TP de java comme expérience, hein
benou a écrit : |
merci, je regarde ca
Marsh Posté le 16-02-2004 à 13:28:55
quand tu utilises des tableaux comme ca fait toi un compteur qui te donne à chaque instant le nombre d'entité que contient le tableau (sachant que ca commence à numéroter à 0)
Parce que si tu pointes sur une case vide du tableau pour la lire, tu va manger une nullpointerexception...
PS : avant de le lire, faudrait le remplir ton tableau, ca aiderait
Marsh Posté le 16-02-2004 à 13:32:13
Jubijub a écrit : quand tu utilises des tableaux comme ca fait toi un compteur qui te donne à chaque instant le nombre d'entité que contient le tableau (sachant que ca commence à numéroter à 0) |
en l'occurence, en java les tableaux sont des objets et ils connaissent leur taille : nomDuTableau.length
Marsh Posté le 16-02-2004 à 13:44:59
Bon ca yest, ca marche, et je n'ai plus rien en static
merci
Marsh Posté le 16-02-2004 à 13:51:29
tant qu'à faire, évite de "catcher" les run-time exceptions, genre NullPointerException, qui correspondent plutôt à des erreurs de programmation.
et en plus ton code sera plus lisible
Marsh Posté le 16-02-2004 à 13:53:25
LAs3R a écrit : tant qu'à faire, évite de "catcher" les run-time exceptions, genre NullPointerException, qui correspondent plutôt à des erreurs de programmation. |
oui, j'ai vu que ca servait a rien ici, j'ai tout viré
Code :
|
Marsh Posté le 16-02-2004 à 13:59:49
R3g a écrit : en l'occurence, en java les tableaux sont des objets et ils connaissent leur taille : nomDuTableau.length |
.
bien sur qu'ils connaissent leur taille, mais si t'a un tableau de lengh 10 et que t'a que 5 éléments dedans, si tu parse tant que i<9 tu va voir des soucis...dès que i = 5, bam, nullpointerexception...
alors que si qq part tu as stocké que tu n'a que 5 éméments dans le tableau, tu parses tant que i<tailleTableau, et tu t'arrete à temps
Marsh Posté le 16-02-2004 à 14:24:41
Jubijub a écrit : . |
heu oui, pourquoi pas. T'as aussi le droit de tester si une ref est pas nulle avant d'appeler une méthode dessus. De toute façon là il a un tableau d'int donc pas de problème...
Marsh Posté le 16-02-2004 à 15:20:38
R3g a écrit : De toute façon là il a un tableau d'int donc pas de problème... |
qui en plus est initialisé à largeur et hauteur ...
j'aime bien aussi le "i <= largeur - 1"
Marsh Posté le 16-02-2004 à 15:25:07
benou a écrit : |
bon, c'est quoi le probleme ici
Marsh Posté le 16-02-2004 à 15:35:55
Normalement, pour ajouter 1 ou soustraire 1, tu utilise plutot ++ et --. Ici cela te donnerais "i<=largeur--".
Bon c'est du chipotage, il a dit 3 tp de Java et je te rassure, j'aurais même pas été capable de faire ce que t'a fait
Dur dur d'être un newbie ^^
Marsh Posté le 16-02-2004 à 15:37:35
burnedsoul a écrit : |
visiblement t'as pas fini d'en être :
burnedsoul a écrit : Normalement, pour ajouter 1 ou soustraire 1, tu utilise plutot ++ et --. Ici cela te donnerais "i<=largeur--". |
ces deux choses n'ont rien a voir, il a pas besoin de décrémenter largeur
Marsh Posté le 16-02-2004 à 15:42:16
burnedsoul a écrit : Normalement, pour ajouter 1 ou soustraire 1, tu utilise plutot ++ et --. Ici cela te donnerais "i<=largeur--". |
rien à voir ...
c'est juste que i < largeur c'est quand même plus simple à écrire
Marsh Posté le 16-02-2004 à 15:43:44
Ah bah dsl alors
C'était quoi alors qui allait pas du coup ?
Marsh Posté le 16-02-2004 à 15:44:18
Et on peut pas faire a la place de largeur -1 largeur-- ?
Marsh Posté le 16-02-2004 à 15:44:37
burnedsoul a écrit : Ah bah dsl alors |
y'a pas d'erreur dans cette ligne, juste une soustraction inutile, cf poste de benou juste avant moi
Marsh Posté le 16-02-2004 à 15:44:44
burnedsoul a écrit : Et on peut pas faire a la place de largeur -1 largeur-- ? |
lis le post de benou juste au dessus
Marsh Posté le 16-02-2004 à 15:46:47
burnedsoul a écrit : Et on peut pas faire a la place de largeur -1 largeur-- ? |
non.
Code :
|
est traduit par
Code :
|
ce qui modifie la valeur de largeur (et ce n'est pas ce qu'on veut ici)
de plus, lors d'une comparaison, largeur est décrémenté apres comparaison.
Code :
|
Marsh Posté le 16-02-2004 à 15:48:01
Je veux dire en cas général quoi "variable-1" c'est pas pareil que "variable--" ??
Marsh Posté le 16-02-2004 à 17:12:48
burnedsoul a écrit : Je veux dire en cas général quoi "variable-1" c'est pas pareil que "variable--" ?? |
Code :
|
et
Code :
|
décrémentent "variable"
ce qui n'est pas le cas de
Code :
|
Marsh Posté le 16-02-2004 à 13:08:26
Voilà, je dois faire un projet en java pour la fin d'année, et je n'ai aucune idee de quoi faire. Comme nous partons d'un niveau en java proche de zero, je cherche a m'entrainer un peu, et j'essaie de faire un petit jeu de bataille navale.
En premier j'essaie d'écrire une classe gerant les grilles.
pour cela, j'essaie de generer un tableau, de le remplir au depart de 0 si il n'y a pas de bateau, puis j'essaie d'affficher le contenu des cases.
ca compile, mais à l'exécution, j'ai un
mathieu@perchut2 projet $ java Grille
Exception in thread "main" java.lang.NullPointerException
at Grille.main(Grille.java:57)
ce qui correspond à la ligne ou je remplis mon tableau de 0. Si j'ai bien suivi, ca veut dire que mon tableau est rempli de Null c'est ca ? Or je le sais bien, vu que je veux le remplir de 0
Si vous pouviez m'aider ... merci
(ok, c'est un peu gruik comme programme )