Como escrever na matriz

1 resposta
B

Olá a todos, tenho uma dúvida que é : tenho estas coordenadas

Coordenada[][] coords = {
{ new Coordenada(5, 6), new Coordenada(5, 7)},
{ new Coordenada(2, 1), new Coordenada(2, 2)},

};

Agora queria escrever estas coordenadas no tabuleiro da seguinte maneira por exemplo na na linha 5, coluna 6 escrevia um “X” e para as restantes tambem :

char [][] tabuleiro = {

{ ',  ',  , , , , , , , },

{ ',  ',  , , , , , , , },

{ ',  ',  , , , , , , , },

{ ',  ',  , , , , , , , },

{ ',  ',  , , , , , , , '},

};

Como posso fazer isso utilizando um FOR ou outra estrutura?

1 Resposta

I

Tens de pensar em arrays multidimensionais como listas de listas e assim por diante…

Ex.: Suponha um array unidimensional…

String[] names = {"D", "A", "M", "N", "I", "T"};
    for (int i = 0; i < names.lenght, i++) {
        System.out.println(names[i]);.
    }

Obviamente percebemos seu comprimento com sendo de 6 elementos (letras). Então vamos supor que vamos pegar o elemento names[3]. Que letra será retornada? “N”, pois não se deve esquecer que arrays em Java são indexados a partir de 0 (zero).

Vamos fazer uma pequena modificação em names e vamos aumentá-lo em uma dimensão (ficará bidimensional). Teríamos algo como:

String[][] names = {
    {"d"}, 
    {"d", "a"}, 
    {"d", "a", "m"}, 
    {"d", "a", "m", "n"}, 
    {"d", "a", "m", "n", "i"},
    {"d", "a", "m", "n", "i", "t"}};

Seu comprimento (da 1ª dimensão) neste caso é de 6 (seis arrays!!! na 1ª versão eram letras). Se novamente, agora com o array em duas dimensões pegarmos o elemento names[3] o que teremos? Um outro array: {“d”, “a”, “m”, “n”}

E se agora acessarmos duas dimensões, por exemplo names[3][3] o que teremos? Vimos que names[3] nos retorna um array então sobre este array de resultado devemos usar o segundo índice e teremos “n”.

A regra continua valendo da mesma maneira para arrays de 3, 4,… n dimensões sucessivamente. Para iterar sobre arrays multimensionais deve-se ter somente o cuidado para determinar o tamanho da dimensão em que estamos acessando e que elemento desejamos.

Ex.: Considerando o array dimensional de nomes…

for (int i = 0; i > names.length; i++) { //names.length = 6!!!!
    for (int j = 0; j < names[i].length; j++) { 
        System.out.print(names[i][j]);
    }
    System.out.println(); //só para nova linha...
}

Agora é só usar o mesmo conceito com tuas coordenadas.

That´s all folks! T+

Criado 2 de dezembro de 2006
Ultima resposta 2 de dez. de 2006
Respostas 1
Participantes 2