Olá pessoal,
Estou tentando criar um jogo (batalha naval) e neste momento quero criar um array bidimensional com 6 linhas e seis colunas e popular os espaçõs com o valor 0 inicialmente. Este array será meu tabuleiro.
Para isso eu tenho uma classe tabuleiro e nela o método populatabuleiro() é responsável por popular este array.
Segue abaixo parte da minha classe tabuleiro com o método populatabuleiro()
package br.com.batalhanaval;
public class Tabuleiro {
int linhas = 5;
int colunas = 5;
int qtdJogadas = 0;
boolean haJogo = true;
int[][] posicoesDoTabuleiro = new int[linhas][colunas];
public int[][] populaTabuleiro() {
int[][] posicoesDoTabuleiro = new int[linhas][colunas];
System.out.println(posicoesDoTabuleiro.length - 1);
int j = 0;
for (int i = 0; i < posicoesDoTabuleiro.length - 1; i++) {
while (j < posicoesDoTabuleiro.length) {
posicoesDoTabuleiro[i][j] = 0;
System.out.println("L C: " + i + ", " + j + " Valor "
+ posicoesDoTabuleiro[i][j]);
j++;
}
System.out.println(i + "," + j);
i++;
}
return posicoesDoTabuleiro;
}
O que está bugando é que parece que o valor de i não está sendo incrementado pois o resultado no console está sendo desastroso.
Segue abaixo:
L C: 0, 0 Valor 0
L C: 0, 1 Valor 0
L C: 0, 2 Valor 0
L C: 0, 3 Valor 0
L C: 0, 4 Valor 0
0,5
2,5
4
L C: 0, 0 Valor 0
L C: 0, 1 Valor 0
L C: 0, 2 Valor 0
L C: 0, 3 Valor 0
L C: 0, 4 Valor 0
0,5
2,5
4
L C: 0, 0 Valor 0
L C: 0, 1 Valor 0
L C: 0, 2 Valor 0
L C: 0, 3 Valor 0
L C: 0, 4 Valor 0
0,5
2,5
4
L C: 0, 0 Valor 0
L C: 0, 1 Valor 0
L C: 0, 2 Valor 0
L C: 0, 3 Valor 0
L C: 0, 4 Valor 0
0,5
2,5
4
L C: 0, 0 Valor 0
L C: 0, 1 Valor 0
L C: 0, 2 Valor 0
L C: 0, 3 Valor 0
L C: 0, 4 Valor 0
0,5
2,5
Exception in thread “main” java.lang.StackOverflowError
at sun.nio.cs.SingleByteEncoder.encodeArrayLoop(Unknown Source)
at sun.nio.cs.SingleByteEncoder.encodeLoop(Unknown Source)
at java.nio.charset.CharsetEncoder.encode(Unknown Source)
at sun.nio.cs.StreamEncoder.implWrite(Unknown Source)
at sun.nio.cs.StreamEncoder.write(Unknown Source)
at java.io.OutputStreamWriter.write(Unknown Source)
at java.io.BufferedWriter.flushBuffer(Unknown Source)
at java.io.PrintStream.write(Unknown Source)
at java.io.PrintStream.print(Unknown Source)
at java.io.PrintStream.println(Unknown Source)
at br.com.batalhanaval.Tabuleiro.populaTabuleiro(Tabuleiro.java:20)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:9)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
at br.com.batalhanaval.Tabuleiro.jogada(Tabuleiro.java:39)
at br.com.batalhanaval.IniciaJogo.(IniciaJogo.java:10)
Onde é que eu estou errando?
Vocês entenderam o que eu estou querendo fazer?
Não reparem o fato de eu estar utilizando um for e dentro dele um while, mas é que ja tentei com um for dentro do outro, um while dentro do outro e nada.
É correto utilizar um for dentro do outro para popular arrays bidimensionais?
Desde já agradeço.
int[][] b = new int[5][5];
for (int i=0; i <= b.length -1; i++){
for (int x=0; x<=b.length -1; x++){
b[i][x] = 0;
System.out.println(b[i][x]);
}
}
± isso vc ker fazer?
System.out.println("Valor da posição " + i + " , " + x + " é: " + b[i][x]);
É isso mesmo. Fiz uma classe simples para testar e dá o mesmo erro.
public class TestaArray {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] matriz = new int[5][5];
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz.length; j++) {
matriz[i][j] = 0;
System.out.println("Linha " + i + " Coluna " + j);
}
}
}
}
thingol
Outubro 1, 2007, 12:17pm
#5
Isto quer dizer que há duas chamadas que são mutuamente recursivas (Tabuleiro.populaTabuleiro e o construtor de IniciaJogo).
Veja como quebrar esta recursividade indevida.
Valeu pessoal, estava fazendo besteira mesmo como o tingol falou.
Agora está certinho.
Valeu você tb juruna
Qualquer coisa eu grito.
[]'s