IIC2233 / Syllabus-2023-1

75 stars 44 forks source link

Conjunto Eventos en Clase Torneo #234

Closed maxo2727 closed 1 year ago

maxo2727 commented 1 year ago

Prerrequisitos

(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")

Duda

Hola! Estoy confundido con respecto al atributo "eventos" de la clase Torneo, ya que en el enunciado dice que este atributo es el conjunto de eventos que pueden suceder. Pero, no tenemos un conjunto de eventos específicos definidos previamente (como lo es con excavadores, arenas, etc) para poder crear el conjunto de eventos. Y para la función iniciar_evento(), parece no ser necesario utilizar algun conjunto de eventos, simplemente sería suficiente basarse en la probabilidad de cada evento y determinar su impacto en la partida.

Entonces, es necesario crear algun conjunto de eventos nosotros mismos? o podemos no utilizar este atributo en nuestro programa?

Benjeeeh commented 1 year ago

Hola! Si bien se puede definir de muchas maneras, incluyendo de la forma que mencionas, lo que se menciona en el enunciado se debe establecer si o si, por lo que Eventos debe estar. La idea de Eventos es tener almacenado de la forma que prefieras la información que creas necesaria de estos tres eventos y que luego en iniciar_evento se utilice esta información directamente desde donde está almacenado. Como no se tiene información previa de esto como en los casos que tu mencionas, tu debes definir está información y almacenarla de alguna manera. Como consejo, recuerda que puedes agregar las cosas que estimes necesarias en parametros.py, no solo los parámetros mínimos que pedimos. La lógica de esto es que el Torneo maneja todo lo que sucede dentro de la competencia, y por ende, también debe tener control sobre los eventos y no que cada vez que suceda esto alguien más provea la información necesaria para que ocurra.

Cualquier duda me avisas, éxito en la tarea!

camilamartinf commented 1 year ago

Hola! @Benjeeeh respecto a esta duda, podríamos asumir que, una vez que hayan ocurrido todos los eventos posibles para un torneo, no ocurran más eventos aunque la probabilidad de iniciar evento sea 1 ? Pregunto esto porque consideré una probabilidad para cada tipo de evento (la suma =1) y además consideré que hay una cantidad de veces que estos eventos pueden ocurrir (usando el atributo eventos de Torneo). Siento que es más realista restringirlo así para que, mientras más dure un torneo, menos días hayan eventos (que en la vida real es más probable) y que si por ejemplo la lluvia es más probable que un terremoto, si ya han ocurrido suficientes terremotos, entonces solo haya la posibilidad de lluvia. Quizás es irrelevante, pero preferí preguntar. Gracias desde ya!

Benjeeeh commented 1 year ago

Hola @camilamartinf En el enunciado se dice que por día debe existir una probabilidad de que ocurra o no uno de estos eventos, pero estos debe ser constante durante la duración del torneo y aparte un mismo evento puede repetirse las veces que sean. Por ende, no es posible implementar lo que pides ya que quitas esta regla de constancia y en mi opinión es mucho más complicado. Si quieres implementarlo, puedes hacerlo pero post-tarea, ya que implementar esto 1) No seguiría lo que dice el enunciado, lo que puede implicar descuentos y 2) Dificulta la recorrección.

Cualquier duda estaré atento, éxito con la tarea!!

FelipeIGS commented 1 year ago

Hola @Benjeeeh Cuando dices almacenar informacion en eventos, a que te refieres especificamente? Y me pasa que como decian inicialmente, no es necesaria informacion para iniciar evento, entonces no entiendo cual es la informacion que deberiamos agregar a iniciar evento (como parametro esta nueva info?). De la misma manera, no se que cosa agregar a self.eventos porque no me quedo claro con lo que dijiste. Muchas gracias!!

Benjeeeh commented 1 year ago

Hola @FelipeIGS Te recomiendo almacenar por ejemplo los parámetros necesarios de probabilidad junto a un identificador que te diga a que evento pertenece esta probabilidad, y desde este parámetro realizar lo necesario en iniciar evento para que sean utilizados.