manipulação de peças grid.... jogo da memória

olá, estou tentando fazer(pq conseguir ta difícil, só com a ajuda de vcs, mas é o primeiro né gente -) um jogo da memória, como meu primeiro programa usando o swing, criei a tela inicial, e consegui criar o tabuleiro utilizando grid e colocar as imagens, agora não sei como fazer para sortear para elas mudarem de lugar a cada novo início, alem de ñ saber como colocar as funções básicas de um jogo da memória nas peças (virada, desvirada, já com par)…
gracias
[]'s

deu certo a minha resposta no outro tópico?

acho que mudar eles de lugar seria complicado mais o que da de fazer e trocar as imagens

[code]import java.awt.GridLayout;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class JogoDeMemoria extends JFrame{
private JButton[][] btosTab = new JButton[5][5]; //no caso de um tabuleiro de 5 por 5
JPanel panelTab;

JogoDeMemoria(){
	super("Jogo da Memoria");
	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
	this.setSize(1000,500); 

	confPanelTab();

	this.setVisible(true);
}

private void confPanelTab(){
	panelTab = new JPanel(new GridLayout(5,5)); // crio o panel que servira de tabuleiro; 

	criaBtosTab();

	this.add(panelTab); // adiciono ele na janela;
}

private void criaBtosTab(){
	for(int i=0; i<btosTab.length; i++){ // loop que percore as linhas do tabuleiro
		for(int j=0;j<btosTab[i].length; j++){ //loop que percore as colunas do tabuleiro
			btosTab[i][j] = new JButton(); //tirei otesto que colocava nos JButtons
			panelTab.add(btosTab[i][j]);
		}

	}
}

public void embaralha(){
	for(int i=0; i<btosTab.length; i++){// loop para zerar as images (no exemplo to zerando o texto)
		for(int j=0;j<btosTab[i].length; j++){
			btosTab[i][j].setText(""); //tirei o texto que colocava nos JButtons
		}

	}

	int contmodificado = 0;
	do{
		int coluna = new Random().nextInt(btosTab.length);
		int linha = new Random().nextInt(btosTab[coluna].length);
		if(!btosTab[coluna][linha].getText().isEmpty()){ //verifico se o btosTab sorteado ja esta com texto (no seu caso seria se ja esta com imagem com imagem)
			continue; //se estiver recomesa o loop
		}
		contmodificado++; // adiciona um nos sorteados
		btosTab[coluna][linha].setText("Botão "+contmodificado);
		
	}while(contmodificado<btosTab.length*btosTab[0].length);
}
public static void main(String[] args) {
	JogoDeMemoria jogo =new JogoDeMemoria();
	jogo.embaralha();
}

}[/code]

modifiquei o exemplo que te dei no outro tópico para colocar os nomes de forma aleatorio

estuda ele e vê oque você aproveita!

até mais!

Você pode armazenar as imagens ou referências para elas em uma matriz. Ai você consegue embaralhar elas e então mostrar no grid.
Imagine que a matriz do código a seguir armazena referências para às imagens.

[code]// cinco linhas por sete colunas
// troque TipoValorArmazenado pelo tipo que você está usando
// para referenciar suas imagens
TipoValorArmazenado[][] matriz = new TipoValorArmazenado[5][7];

// java.util.Random
Random r = new Random();

for ( int i = 0; i < matriz.length; i++ ) {

for ( int j = 0; j < matriz[i].length; j++ ) {

    // gera um índice aleatório para linha e coluna
    // o método nextInt(int) de Random retorna um valor pseudoaleatório no intervalo [0;int[
    // ou seja, de 0 (inclusive) ao valor passado por parâmetro (exclusivo)
    int linha = r.nextInt( matriz.length ); // retorna de 0 à 4
    int coluna = r.nextInt( matriz[i].length ); // retorna de 0 à 6

    // troca posicao atual pela sorteada
    TipoValorArmazenado temp = matriz[i][j];
    matriz[i][j] = matriz[linha][coluna];
    matriz[linha][coluna] = temp;

}

}

// aqui você itera pela matriz e vai setando novamente as imagens
// na sua grade, pois depois da execução do código anterior,
// sua matriz vai estar interamente embaralhada.[/code]
[]´s