buenas, necesito manejar un random en netbeans para hacer un juego de black jack, pero no se como manejar las letras y todos los numeros para q salgan aleatoriamente, agradeceria si alguien me puede ayudar con este problema, gracias.
el random, salvo que me este confundiendo, te da lo mismo que sea netbeans, eclipse, intellij o un editor de texto, porque el random es de java, no del ide
en cualquier caso y contestando a tu pregunta:
Math.random() te dara un valor double entre 0.0 y 1.0 (esto es informacion basica del javadoc de java, que puedes consultar en internet o incluso desde el mismo netbeans)
ahora lo que necesitas es saber que entorno de numeros necesitas y que entorno de letras necesitas.
es decir, supongo que necesitaras numeros comprendidos entre 0 y 1000 (por ejemplo)
y si miras una tabla ASCII, las letras estaran entre el numero 65 y el 90 si son mayusculas o el 97 y 122 si quieres minusculas
ahora tendrias dos opciones:
1- hacerte un array cuyas posiciones esten ocupadas por cada una de las letras del alfabeto. ahora haces un random() y el numero que obtengas lo multiplicas por (array.length-1). A esto le haces un Math.floor(), obteniendo una letra de ese array con ese indice
Vemos diferentes ejemplos, suponiendo que tenemos 28 letras y que el array va desde la posicion 0 hasta la 27:
random
() == 0.0 -> Math.
floor(0.0 * 27) = 0 tienes la letra de la posicion
0random
() == 1.0 -> Math.
floor(1.0 * 27) = 27 tienes la letra de la posicion
27random
() == 0.53 -> Math.
floor(0.53 * 27) = 14 tienes la letra de la posicion
14random
() == 0.57 -> Math.
floor(0.57 * 27) = 15 tienes la letra de la posicion
15
2- Prescindir de tu array y hacerlo mediante la tabla ASCII. Este metodo es un poco mas complejo y, a falta de probarlo, creo que seria algo asi:
Obtienes tu random() y aplicas la siguiente formula:
indiceMinimoASCII + [(miRandom * (indiceMaximoASCII - indiceMinimoASCII)) / (indiceMaximoRandom - indiceMinimoRandom)]
Asi, si no me equivoco, tendrias el indice ASCII de la letra que buscas, y luego solo tendrias que convertirlo a Char mediante el metodo correspondiente.
Sinceramente, creo que te seria infinitamente mas facil de hacer y depurar por el primer metodo.
Sobre los numeros, como no te vas a hacer un array con mil numeros (o los que necesites), no te queda mas remedio que aplicar la formulita de conversion entre entornos:
int numeroParaBlackjack = Math.floor( [ ( Math.random() * (numeroMaximoDeMiEntorno - numeroMinimoDeMiEntorno) ) / (1.0 - 0.0) ]);
De todas formas, estoy diciendote todas estas cosas de cabeza, asi que compruebalo e investigalo bien investigado por si acaso me he confundido. Estas son mis dos soluciones, lo cual no implica que sean las mejores ni las unicas.
Suerte