3 em Linha

11 respostas
P

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:
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";
        }
    }

vlw.

11 Respostas

guilherme.dio

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.

P

Sim,

mas isso já tenho, eu quero e saber como e que povoa a matriz com essas letras .

guilherme.dio

Peaceandlove:
Sim,

mas isso já tenho, eu quero e saber como e que povoa a matriz com essas letras .

Leia o EDIT que fiz no meu post anterior, eu havia me enganado quanto a sua dúvida e re-editei.

P

Eu fazendo isso com os dois for's

Um ia ser isso
String [][] matriz = new String[10][5];

//o for
public int PovoarMatriz(){
        
        for(int b=0; b<matriz.length; b++)
            
    }}

Só que não percebo como é que eu insiro as letras na matriz :x

InicianteJavaHenriqu

Nem precisa ser String pode ser char.

:thumbup:

P

Nem precisa ser String pode ser char.

Tens razão :slight_smile:

em relação aos for’s como é que faço?

guilherme.dio

É 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();
      }
   }
}
P

Eu quando tento fazer isso, ao correr o programa da-me NullPointException …

Está alguma coisa mal?

guilherme.dio

Só um detalhe, vc deve inicializar a matriz no Construtor assim:

this.matriz = new int[LINHAS][COLUNAS];
P

É isso consegui fazer !

Obrigado :slight_smile:

guilherme.dio

Peaceandlove:
É isso consegui fazer !

Obrigado :)

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

Criado 8 de maio de 2012
Ultima resposta 10 de mai. de 2012
Respostas 11
Participantes 3