Pedir entrada de datos durante un tiempo determinado
Publicado por Miguel (2 intervenciones) el 11/11/2020 10:26:16
Hola a todos,
Tengo una clase Subasta para modelar la subasta de un determinado producto. La clase tiene como atributo un array donde iré guardando las pujas que se realicen. Existe un método para poder insertar pujas en el array y otro para comprobar cual de las pujas ha sido la más alta y determinar quien se lleva la subasta.
En el método main, debo realizar lo siguiente: tengo que aceptar pujas durante un tiempo determinado (por ejemplo 60 segundos) o hasta que el número de pujas llegue a 10. Durante este periodo, recibiré la puja llamando al método correspondiente de la clase Subasta. Cuando se llegue a esos 60 segundos o las pujas lleguen a 10, tendré que llamar al método para determinar el ganador.
¿Alguien sabe como puedo realizar todo esto en el método main? Mi duda es cómo hacer para que al llegar a 60 segundos el usuario ya no pueda insertar pujas y pase a llamarse al método para determinar el ganador. Puede darse la posibilidad de que pasen los 60 segundos y no se hayan insertado pujas y no haya ganador de la subasta.
He probado con un bucle que se ejecute durante 60 segundos, pero me obliga al menos a meter alguna puja para que funcione, si no el bucle no termina nunca.
Espero vuestros comentarios. Gracias de antemano.
Un saludo
Tengo una clase Subasta para modelar la subasta de un determinado producto. La clase tiene como atributo un array donde iré guardando las pujas que se realicen. Existe un método para poder insertar pujas en el array y otro para comprobar cual de las pujas ha sido la más alta y determinar quien se lleva la subasta.
En el método main, debo realizar lo siguiente: tengo que aceptar pujas durante un tiempo determinado (por ejemplo 60 segundos) o hasta que el número de pujas llegue a 10. Durante este periodo, recibiré la puja llamando al método correspondiente de la clase Subasta. Cuando se llegue a esos 60 segundos o las pujas lleguen a 10, tendré que llamar al método para determinar el ganador.
¿Alguien sabe como puedo realizar todo esto en el método main? Mi duda es cómo hacer para que al llegar a 60 segundos el usuario ya no pueda insertar pujas y pase a llamarse al método para determinar el ganador. Puede darse la posibilidad de que pasen los 60 segundos y no se hayan insertado pujas y no haya ganador de la subasta.
He probado con un bucle que se ejecute durante 60 segundos, pero me obliga al menos a meter alguna puja para que funcione, si no el bucle no termina nunca.
1
2
3
4
5
6
7
8
9
10
Scanner sc = new Scanner(System.in);
long start = System.currentTimeMillis();
long end = start + 10*1000;
System.out.println(end);
while(end-start > 0) {
.....
int puja = sc.nextInt();
....
}
....
Espero vuestros comentarios. Gracias de antemano.
Un saludo
Valora esta pregunta


0