Valores aleatórios

7 respostas
M

Salve!

Tenho um array:

String[] cartas = {
	
	"A" , "2" , "3" , "Q" , "J" , "K" 
	};

Quero armazenar 3 valores em 3 variáveis(valores aleatórios), sendo que cada uma contenha um dos valores do array e diferentes, mas não estou conseguindo.

7 Respostas

peczenyj

Acho que o problema de escolher N valores aleatorios distintos a partir de M valores ja foi muito discutido aqui no GUJ.

Mostre como vc esta fazendo. Acho que, via arrays, vc pode ter um trabalho consideravel, mas via Collections, como ArrayList e Set, pode ser mais facil, dependendo do que vc precisa aprender nesse exercício.

M

peczenyj:
Acho que o problema de escolher N valores aleatorios distintos a partir de M valores ja foi muito discutido aqui no GUJ.

Mostre como vc esta fazendo. Acho que, via arrays, vc pode ter um trabalho consideravel, mas via Collections, como ArrayList e Set, pode ser mais facil, dependendo do que vc precisa aprender nesse exercício.

O que estou tentando e simular um jogo de “truco”, pegar 3 valores(cartas) e armazenar em 3 variaveis, para depois chamar 3 botões e cria-los no frame com os valores aleatórios.

Se tiver alguma idéia de um help ai, mas vou dar uma pesquisada sobre Collections pra ver se fica melhor.

nicoweda

Porque vc naum usa a classe Random pra gerar um numero randomico com o tamanho da sua coleção de cartas.
Dai vc remove essa carta da sua coleção e sorteia outra… e assim por diante.

Vo postar um codigo de cabeça, então não sei se é compilavel.

public Carta sortear(List<Carta> deck){
	int value = new Random().nextInt(deck.size());
	return deck.remove(value);
}

toda vez ele vai tirar do deck a carta… assim vc nunca sorteia duas vezes a mesma.
Boa sorte!

M
Random r = new Random();  
indice = r.nextInt(cartas.length)

:lol:

Vlws abçs.

peczenyj

cuidado que vc pode pegar valores repetidos :wink:

nicoweda

Se fizer removendo da lista é impossivel repetir a carta… outra opção é vc dar um shuffle na lista com todas as cartas e depois sair pegando a primeira, segunda, terceira… etc.
Exatamente como no caso do baralho real.
tb é uma opção

M

Blz, vou testar dessas formas também, pois desta pega valores repetidos igual o amigo disso e o código mostra :smiley:

vlw abçs.

Criado 19 de março de 2008
Ultima resposta 19 de mar. de 2008
Respostas 7
Participantes 3