Me ajudem por favor - embaralhar cartas

olá, por favor estou precisando de um codigo para embaralhar cartas de um jogo da memoria. por favor, me ajudem como faço para embaralhar???

Você pode usar a classe Math com o método random(), que te retorna um número maior ou igual a 0.0 e menor que 1.0.

Se quiser um número de 0 a 100 pode fazer 100*Math.random().

Você numera cada carta com um código e depois gera uma lista com números utilizando a classe que te falei.

Existe um método na classe java.util.Collections chamado “shuffle” (embaralhar) que faz exatamente o que você quer.

http://leepoint.net/notes-java/algorithms/random/random-shuffling.html

Cara …

Não estou querendo te dar tudo de mão beijada, mas como já tenho algo pronto em um projeto que estou tocando, segue as classes que faz o que vc está querendo.
Só peço para vc manter a autoria das classes que vc usar, pois este projeto é um jogo de celular que em breve será lançado. Segue projeto eclipse para as classes de lógica.

Abraço,

deitel sexta edição com essa questao… ele utilizou array!!

Olá.

Eu precisei fazer um jogo desses de memória para uma amiga da internet e quebrei um pouco a cabeça para embaralhar o array mas, depois descobri uma maneira muiiito fácil de fazer isso.

Se as cartas estão em um array :

[code]
public void embaralhar(Carta cartas[])
{

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

      //Sorteia dois indexs para serem trocados
      int index1=Math.random()*cartas.length;
      int index2=Math.random()*cartas.length;
  
      //Inverte os valores 
     Carta tmp=cartas[index1];
     cartas[index1]=cartas[index2];
     cartas[index2]=tmp;
 
  }

} [/code]

Acho que esse é o algoritmo mais simples possível para fazer isso.

Boa sorte!