Boas,
tenho um jogo para fazer em java que é o 3 em linha, é baseado no jogo do bejeweld, cada linha com 3 cores iguais desaparece.
Estou a comecar a criar a classe “Tabuleiro” que é constituida com uma matriz com 10 linhas e 5 colunas.
Como é que eu preecho uma matriz do tipo String com as letras que são random ?
Código:
Classe Tabuleiro:
public class Tabuleiro extends Jogo {
String [][] matriz = new String[10][5];}
Classe Jogo:
[code]public class Jogo {
private String vermelho = "e";
private String amarelo = "a";
private String azul = "u";
private final Random random = new Random();
int i = random.nextInt(3);
public String converterLetra() {
if (i == 1) {
return "e";
} else if (i == 2) {
return "a";
} else {
return "u";
}
}[/code]
vlw.
Você pode utilizar a classe Random().
Random random = new Random();
//Gera número entre de 1 a 3:
int aleatorio = random.nextInt(3) + 1;
Assim, vc utiliza sua regra de ifs, e letras randomicas serão geradas.
EDIT: rsrs, agora que vi, vc já gera o aleatório… rs
Então, basta isolar um método que gera uma letra aleatória:
public String geraLetra()
{
Random random = new Random();
//Gera número entre de 1 a 3:
int i = random.nextInt(3) + 1;
if (i == 1) {
return "e";
} else if (i == 2) {
return "a";
} else {
return "u";
}
}
e então, criar um método que inicializa a matriz, com o uso de 2 fors encadeados, um percorrendo linha, e outro colunas, ai nesse de colunas vc gera a letra e armazena na linha e coluna específica.
Sim,
mas isso já tenho, eu quero e saber como e que povoa a matriz com essas letras .
[quote=Peaceandlove]Sim,
mas isso já tenho, eu quero e saber como e que povoa a matriz com essas letras .[/quote]
Leia o EDIT que fiz no meu post anterior, eu havia me enganado quanto a sua dúvida e re-editei.
Eu fazendo isso com os dois for’s
Um ia ser isso
[code]String [][] matriz = new String[10][5];
//o for
public int PovoarMatriz(){
for(int b=0; b<matriz.length; b++)
}}
[/code]
Só que não percebo como é que eu insiro as letras na matriz :x
Nem precisa ser String pode ser char.
:thumbup:
[quote]Nem precisa ser String pode ser char.
[/quote]
Tens razão
em relação aos for’s como é que faço?
É muito simples o raciocínio, vc deve pensar como se fosse uma tabela, imagine gráficamente vc percorrendo linha a linha, coluna a coluna na sequencia:
1ª Linha :
1ª Coluna
2ª Coluna
3ª Coluna
4ª Coluna
5ª Coluna
2ª Linha :
1ª Coluna
2ª Coluna
3ª Coluna
4ª Coluna
5ª Coluna
e assim em diante…
Resolução:
private final int LINHAS = 10;
private final int COLUNAS = 5;
private int[][] matriz;
private void inicializaMatriz()
{
for(int linha = 0;linha < LINHAS;linha++)
{
for(int coluna = 0;coluna < COLUNAS;coluna++)
{
matriz[linha][coluna] = geraLetra();
}
}
}
Eu quando tento fazer isso, ao correr o programa da-me NullPointException …
Está alguma coisa mal?
Só um detalhe, vc deve inicializar a matriz no Construtor assim:
this.matriz = new int[LINHAS][COLUNAS];
[quote=Peaceandlove]É isso consegui fazer !
Obrigado :)[/quote]
Agora, clique em “Editar” no seu primeiro tópico, e coloque antes do título: [RESOLVIDO]