IIC2233-2016-02 / Syllabus

Repositorio principal del curso
29 stars 25 forks source link

Simulacion muy rapida #434

Closed narierao closed 7 years ago

narierao commented 7 years ago

Cuando trato de hacer en la simulacion un for t in range(ingresado) los hechos suceden demasiado rapido y no se logra apreciar nada :c le coloque un time.sleep(0.05) y se me cae. que puedo hacer? la unica funcion que me "falta" por hacer es la del cuartel y tampoco requiere una ejecucion muy profunda que digamos. y se me cae con cualquier valor del sleep(). Espero se entienda.

Hernan4444 commented 7 years ago

@narierao estas usando un tick = 1 segundo?? si ese es el caso sugerimos considerar utilizar otra conversión como 60 tick = 1 segundo, 30 tick = 1 segundo, etc. De esa forma los eventos mas importantes no pasaran dentro de tan pocos ticks sino que pasaran varios antes.

Estamos atento a tu respuesta Saludos!!

narierao commented 7 years ago

me dejaste pillo @Hernan4444 a que te refieres con los tick? (falte a esa actividad :c )

FernandoPieressa commented 7 years ago

@narierao

1 tick es una ejecucion de la funcion que recibe el gui.run, por ejemplo, decir que son 60 ticks por segundo significa que en 1 segundo se ejecutara 60 veces la funcion que recibe el gui.run)

Saludos!

fabraghetto commented 7 years ago

¿Y cómo se configura eso? Como puedo configurar para que ocurran tantos ticks por segundo, y por default en el demo por ejemplo, cuantos ticks se hacen por segundo ?, yo pensaba que la cantidad de ticks dependía de cuanto se demoraba el pc en realizar todas las cosas que se le indicaban en cada tick (si son muchas, entonces cada tick se demorará más y así..).

Pregunto porque de hecho justo me surgió esta duda para los tiempos de construcción de los edificios, en el enunciado sale 10 segundo por ejemplo un edificio en construirse,

Aprovecho de preguntar aquí para no hacer un nuevo issue.

Hernan4444 commented 7 years ago

@fabraghetto ustedes tienen que definir cuantos ticks tienen que pasar para considerar un segundo de la simulacion, no es necesario que sea un segundo de la vida real. Si para ti 20 ticks es un tiempo considerable, entonces esa cantidad la defines en tu Readme y nosotros esperamos que en 200 ticks se construya un edificio. Saludos!!

fabraghetto commented 7 years ago

Entiendo !!, de hecho eso iba a proponer jaja, gracias.

narierao commented 7 years ago

@Hernan4444 puedo tener en una clase un atributo que se llame "time" e irle sumando uno cada vez y ejecutar un time.sleep(0.1) en el tick?

Hernan4444 commented 7 years ago

@narierao no hay ninguna restricción con crear una clase, pero sobre el time.sleep(0.1) puede ocasionarte problemas puesto que la interfaz gráfica es algo que está funcionando constantemente y tu la quieres haces dormir, eso en general provoca que se caiga tu programa, pero si te funciona no hay ningún problema. Saludos!!!

narierao commented 7 years ago

yaa filete, no se me cae xd gracias!

Gonzalo-Perez commented 7 years ago

Si entendí bien, ustedes recomiendan usar la conversión 60 ticks= 1 segundo o 30 ticks = 1 segundo. Como podría calcular exactamente el número de ticks que hace que la gui "corra" un segundo ?? No logro entender en el módulo de la gui cada cuanto actualiza todo con un tick.

De antemano, gracias !

Hernan4444 commented 7 years ago

@Gonzalo-Perez no recomendamos ninguno de los dos, es decisión tuya cual usar. No es necesario calcular cuantos ticks hacen un segundo porque todo depende de la cantidad de calculas y procesos que tenga que realizar un tick. Solo debes especificar cuantos ticks seran para ti un segundo y ser consecuente durante la simulacion con ello. Por ejemplo, si una unidad se demora 5 segundos en salir del cuartel y tu consideras 10 ticks como un segundos, esperamos que a los 50 ticks aparezca una unidad del cuartel. Saludos!!!