elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  crear 5 objetos con caracteristicas ya definidas aleatoriamente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: crear 5 objetos con caracteristicas ya definidas aleatoriamente  (Leído 2,539 veces)
sheiking

Desconectado Desconectado

Mensajes: 10


Ver Perfil
crear 5 objetos con caracteristicas ya definidas aleatoriamente
« en: 29 Octubre 2018, 00:12 am »

ayuda quiero generar un programa que me genere 5 personajes (objetos) que tengas diferentes atributos aleatoriamente

en si este es el ejercicio
Realiza un programa que incluya constructores, que genere cinco ayudantes, donde cada ayudante tiene características como: números de ojos (uno o dos), color de piel (amarilla o morada), altura (mediano o alto), un cierto nivel para crear objetos (1 al 5), un cierto nivel para arreglar cosas (1 al 5), un cierto nivel destructivo (1 al 5).

La cantidad de ayudantes necesarios ya ha sido definida, pero las características de cada uno deben ser establecidas al azar.

Al finalizar el programa, imprime la lista de los cinco ayudantes con sus características.

si alguien me puede ayudar estaria muy agradecido

por el momento llevo esto

public class Ayudantes {
    public int numOjos[] = {1,2};
    public String colorPiel[] = {"morado","amarillo"};
    public String altura[] = {"mediano","alto"};
    public int nivelCrearObjetos[] = {1,2,3,4,5};
    public int nivelArreglarCosas[] = {1,2,3,4,5};
    public int nivelDestruccion[] = {1,2,3,4,5};
   
}


En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: crear 5 objetos con caracteristicas ya definidas aleatoriamente
« Respuesta #1 en: 29 Octubre 2018, 01:29 am »

Hola que tal?

Usa geshi, las variables de instancia deben ser declaradas por convención como private que es un modificador de acceso




en la linea 22 usamos aquí la clase SecureRandom, para generar los números pseudoaleatorios con el método .nextInt()

entonces que es lo que esta pasando, si haces numOjos[un numero aleatorio aquí que será el 0 o el 1], gracias a nextInt()

que según la API dice esto



Código
  1.     * @param bound the upper bound (exclusive).  Must be positive.
  2.     * @return the next pseudorandom, uniformly distributed {@code int}
  3.     *         value between zero (inclusive) and {@code bound} (exclusive)
  4.     *         from this random number generator's sequence
  5.     * @throws IllegalArgumentException if bound is not positive
  6.     * @since 1.2
  7.     */
  8.    public int nextInt(int bound) {
  9.  

cuando haces nextInt(numOjos.length) en length retorna 2, y ese numero 2 se excluye, dando como resultado un numero entre el 0 y 1, sin decimales, y ese numero corresponde al subindice de ese array

e igualmente con un array de mayor tamaño como nivelArreglarCosas que consta de 5 posiciones, nextInt() en ese caso le tocaría un numero de entre 0 a 4 porque length retornara 5, pero este se excluye por lo tanto seria 4;

por lo tanto nivelArreglarCosas[secureRandom.nextInt(nivelArreglarCosas.length)] se podría traducir a nivelArreglarCosas[numero aleatorio entre 0 a 4]  :o


Código
  1. package foro;
  2. import java.security.SecureRandom;
  3. import java.util.Arrays;
  4. import java.util.stream.IntStream;
  5.  
  6. public class Ayudantes {
  7.  
  8.    private int numOjos[] = {1,2};
  9.    private String colorPiel[] = {"morado","amarillo"};
  10.    private String altura[] = {"mediano","alto"};
  11.    private int nivelCrearObjetos[] = {1,2,3,4,5};
  12.    private int nivelArreglarCosas[] = {1,2,3,4,5};
  13.    private int nivelDestruccion[] = {1,2,3,4,5};
  14.  
  15.    public Ayudantes() {
  16.  
  17.    }
  18.  
  19.    @Override
  20.    public String toString() {
  21.        final SecureRandom secureRandom = new SecureRandom();
  22.        return "Ayudante {" +
  23.                "numOjos=" +              (numOjos[secureRandom.nextInt(numOjos.length)]) +
  24.                ", colorPiel=" +          (colorPiel[secureRandom.nextInt(colorPiel.length)]) +
  25.                ", altura=" +             (altura[secureRandom.nextInt(altura.length)]) +
  26.                ", nivelCrearObjetos=" +  (nivelCrearObjetos[secureRandom.nextInt(nivelCrearObjetos.length)]) +
  27.                ", nivelArreglarCosas=" + (nivelArreglarCosas[secureRandom.nextInt(nivelArreglarCosas.length)]) +
  28.                ", nivelDestruccion=" +   (nivelDestruccion[secureRandom.nextInt(nivelDestruccion.length)]) +
  29.                '}';
  30.    }
  31.  
  32.    public static void main(String ...blabla) {
  33.        IntStream.rangeClosed(1,5)
  34.                .forEach(numero -> System.out.println(numero+"- "+new Ayudantes().toString()));
  35.    }
  36. }
  37.  

Output

Código
  1. 1- Ayudante {numOjos=1, colorPiel=amarillo, altura=mediano, nivelCrearObjetos=5, nivelArreglarCosas=3, nivelDestruccion=4}
  2. 2- Ayudante {numOjos=2, colorPiel=amarillo, altura=mediano, nivelCrearObjetos=3, nivelArreglarCosas=2, nivelDestruccion=3}
  3. 3- Ayudante {numOjos=1, colorPiel=morado, altura=mediano, nivelCrearObjetos=2, nivelArreglarCosas=2, nivelDestruccion=4}
  4. 4- Ayudante {numOjos=2, colorPiel=morado, altura=mediano, nivelCrearObjetos=1, nivelArreglarCosas=4, nivelDestruccion=1}
  5. 5- Ayudante {numOjos=2, colorPiel=amarillo, altura=alto, nivelCrearObjetos=4, nivelArreglarCosas=3, nivelDestruccion=2}
  6.  
  7. Process finished with exit code 0
  8.  


3 maneras diferentes de hacerlo, existen mas
Código
  1. private void iterates() {
  2.        for(int f=0; f<5; f++) {
  3.            System.out.println((f+1)+"- "+new Ayudantes().toString());
  4.        }
  5.  
  6.        System.out.println("··········································");
  7.        List<Ayudantes> ayudantes = new ArrayList<>();
  8.        ayudantes.add(new Ayudantes());
  9.        ayudantes.add(new Ayudantes());
  10.        ayudantes.add(new Ayudantes());
  11.        ayudantes.add(new Ayudantes());
  12.        ayudantes.add(new Ayudantes());
  13.        for(Ayudantes ayudante : ayudantes) {
  14.            System.out.println(ayudante.toString());
  15.        }
  16.        System.out.println("··········································");
  17.        IntStream.rangeClosed(1,5)
  18.                .forEach(numero -> System.out.println(numero+"- "+new Ayudantes().toString()));
  19.  
  20.    }
  21.  


« Última modificación: 11 Enero 2019, 22:09 pm por rub'n » En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
sheiking

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: crear 5 objetos con caracteristicas ya definidas aleatoriamente
« Respuesta #2 en: 29 Octubre 2018, 02:04 am »

muchas gracias amigo me haz ayudado bastante
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Crear objetos para el Sims
Juegos y Consolas
Güan 1 1,464 Último mensaje 1 Julio 2005, 16:54 pm
por pedritocapo
Crear objetos en ejecución
Programación Visual Basic
juampivicius 2 1,862 Último mensaje 16 Diciembre 2005, 19:46 pm
por Slasher-K
Crear Objetos en el WoW
Juegos y Consolas
folwker 1 3,655 Último mensaje 29 Junio 2009, 23:01 pm
por Artikbot
Problema al crear arreglos de objetos en C++
Programación C/C++
DarkSorcerer 2 8,011 Último mensaje 15 Septiembre 2013, 19:05 pm
por dato000
[BASH] Script para crear un archivo con las siguientes características...
Scripting
Maistere 3 3,406 Último mensaje 27 Enero 2014, 13:56 pm
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines