Generate only one random number, Help PorFavor

0

Hi, I want to generate only one random number in a while, so let's say vegeta is doing a route with speed 45 and its goal is 500, I want it to fall in a random path only one that increases its speed also randomly

package edu.cibertec.hilos;

import java.util.Random;

import edu.cibertec.carrera.CarreraMain;

/**
 * Esta clase permite agregar el comportamiento de hilos a objetos a través de interfaz Runnable.
 * @author Marcelo Tataje
 *
 */
public class VegetaRunnable implements Runnable {

	/**
	 * Velocidad asignada al hilo.
	 */
	final int VELOCIDAD = 45;
	
	/**
	 * Tiempo de descanso para el hilo.
	 */
	final int DESCANSO_MS = 1000;
	
	/**
	 * La distancia recorrida que se irá incrementando.
	 */
	private int distanciaRecorrida = 0;
	
	public int hola;
	
	@Override
	public void run() {
		System.err.println("Vegeta ha iniciado la carrera");
		while (distanciaRecorrida < CarreraMain.DISTANCIA_TOTAL) {
			int hola =distanciaRecorrida += VELOCIDAD;
			System.err.println(String.format("Vegeta ha avanzado: %d en la carrera", hola));
			try {
				Thread.sleep(DESCANSO_MS);
			} catch (InterruptedException e) {
				// Ocurre cuando se intenta acceder a un hilo que no se encuentra en estado de ejecución 
				e.printStackTrace();
			}
		}
		Random r = new Random(); 
		int  resultado = (int) (r.nextFloat() * (500 - hola) + hola);
		System.err.println(String.format("resulktado", resultado));
		System.err.println("->Vegeta ha terminado la carrera");
	}

}
    
asked by Chris Alexis 19.09.2018 в 18:27
source

1 answer

0

Have you tried declaring variable resultado global? You can initialize it in -1 and then in an if you check the value, if it is less than 0 you get a random number and keep it in resultado , otherwise you do not do anything.

package edu.cibertec.hilos;

import java.util.Random;

import edu.cibertec.carrera.CarreraMain;

/**
 * Esta clase permite agregar el comportamiento de hilos a objetos a través de interfaz Runnable.
 * @author Marcelo Tataje
 *
 */
public class VegetaRunnable implements Runnable {

    /**
     * Velocidad asignada al hilo.
     */
    final int VELOCIDAD = 45;

    /**
     * Tiempo de descanso para el hilo.
     */
    final int DESCANSO_MS = 1000;

    /**
     * La distancia recorrida que se irá incrementando.
     */
    private int distanciaRecorrida = 0;

    public int hola;

    private int resultado = -1; // variable global

    @Override
    public void run() {
        System.err.println("Vegeta ha iniciado la carrera");
        while (distanciaRecorrida < CarreraMain.DISTANCIA_TOTAL) {
            int hola =distanciaRecorrida += VELOCIDAD;
            System.err.println(String.format("Vegeta ha avanzado: %d en la carrera", hola));
            try {
                Thread.sleep(DESCANSO_MS);
            } catch (InterruptedException e) {
                // Ocurre cuando se intenta acceder a un hilo que no se encuentra en estado de ejecución 
                e.printStackTrace();
            }
        }
        if(resultado < 0) { // comprobamos
            Random r = new Random(); 
            resultado = (int) (r.nextFloat() * (500 - hola) + hola);
        }
        System.err.println(String.format("resulktado", resultado));
        System.err.println("->Vegeta ha terminado la carrera");
    }

}

Greetings!

    
answered by 19.09.2018 в 18:53