3 em Linha

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 :slight_smile:

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];

É isso consegui fazer !

Obrigado :slight_smile:

[quote=Peaceandlove]É isso consegui fazer !

Obrigado :)[/quote]

Agora, clique em “Editar” no seu primeiro tópico, e coloque antes do título: [RESOLVIDO]