Tengo un programa que genera un número aleatorio y se introduce el número de jugadores y ese número de jugadores son el número de hilos y cada jugador genera un número aleatorio hasta encontrar ese número aleatorio del principio.
Lo que necesito y no sé muy bien como hacerlo es que cada jugador me muestre un resultado y pase al siguiente y así sucesivamente y si un jugador encuentra el número aleatorio que pare, pero que los demás sigan buscándolo.
Tal y como lo tengo yo hasta que no acaba con el jugador uno no pasa al siguiente jugador...
No sé si me he explicado muy bien...
Código PHP:
package hilos_java;
import java.lang.Math;
import java.util.ArrayList;
import java.util.Scanner;
public class hilos_1 extends Thread{
static Scanner teclado = new Scanner(System.in);
static int numeroJugadores;
static int numeroRandomFinal = (int) (Math.random()*100);;
int numeroRandomJugador;
int intentos;
int a;
int re=0;
public static void main(String[] args) throws InterruptedException {
System.out.println("Número generado: " + numeroRandomFinal);
System.out.print("Número de jugadores: ");
numeroJugadores = teclado.nextInt();
System.out.print("\n");
hilos_1 hilos = new hilos_1();
Thread[] Hil = new Thread[numeroJugadores];
for (int i = 0; i < Hil.length; i++){
System.out.println("***** Jugador-"+(i+1)+" *****");
Hil[i] = new Thread(hilos);
Hil[i].start();
Hil[i].join();
}
}//main
public void run() {
ArrayList<Integer> numeroRepeticion = new ArrayList<Integer>();
try {
for (a=0; a!=numeroRandomFinal;){
a = (int) (Math.random()*100);
while (numeroRepeticion.contains(a)){
a = (int) (Math.random()*100);
}
numeroRepeticion.add(a);
intentos++;
System.out.println("Intentos: " + intentos + " Numero:" + a);
sleep(10);
}//for
if(a == numeroRandomFinal){
System.out.println("\nEl jugador " + currentThread().getName() + " ha acertado el número.");
System.out.println("Numero de intentos: " + intentos + "\n");
intentos = 0;
//sleep(1000);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}//run
}//class