Java - Arrays

 
Vista:

Arrays

Publicado por esteban (2 intervenciones) el 24/03/2011 07:14:23
Hola a todos! Tengo un problema que despues de 2 dias de pensar todavia no puedo resolver!
El tema es el siguiente (Una idea de un juego de truco):

Tengo un array String de 40 elementos: "1 de Oro","1 de basto", etc etc.
La idea es extraer 3 elementos de ese array (tres naipes) aleatoriamente y que no se repitan...lo primero ya esta solucionado: con Math.random*39...despues lo redondeo y lo convierto a int con (int)Math.rint.
Asi puedo extraer una "carta" aleatoriamente, pero como hago para extraer un segundo y tercer elemento del array y que no se repitan?
Como creo una formula que me diga que tal pocision ya no esta disponible en el vector?

Espero me hayan entendido, hace poco empese con esto de java pero voy bien...yo solo investigando descubri como pasar un double Math.random a un numero int aleatorio entre 0 y 39!
El tema de los objetos,las clases, etc creo ya lo tengo entendido pero aun me falta aprender mucho.
Bueno espero me puedan ayudar con el problema.

Saludos a todos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Arrays

Publicado por reiky (60 intervenciones) el 24/03/2011 20:59:34
hola que tal, algo sensillo que puedes utilizar igual utilizando arrays seria
un array de enteros, donde guardes las posiciones de las cartas que ya has tomado

luego cada que elijas una carta le preguntas a ese array de enteros si ya has tomado esa carta, si es verdadero preguntas nuevamente, asi sucesivamenete hasta encontrar una carta que no hayas tomado aun, siendo asi la posicion de la carta la guardas en el array de enteros...

algo asi

List<Integer> posicionesCarta;

public int tuMetodoAleatorio(){...}

public int tuMetodoDeSeleccion(){
int numero = tuMetodoAleatorio();
if(posicionesCarta.contains( numero ) ){
tuMetodoDeSeleccion();
}
//guardas la posicion de la carta que elegiste
posicionesCarta.add(numero);
return numero;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Arrays

Publicado por esteban (2 intervenciones) el 24/03/2011 21:58:09
Ahhh entiendo, seria un array de 6 enteros ya que son 6 cartas(3 por jugador) las que tendria que extraer.

No conocia el metodo contains:

boolean contains(Object o) // Devuelve true si la colección contiene a o

Es para trabajar con listas segun dice un manual, pero no sabia que se podia implementar en arrays, es mas todavia me falta aprender que son las listas y todo eso, pero para seguir, antes quiero resolver las dudas que tengo.

Con este metodo y con tu idea reiky, se me facilitan las cosas, voy a tratar de implementarlo y cualquier cosa consulto aca de nuevo!

Muchas gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar