Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información CI6675 Algoritmos y Estructuras Optimizadas para Videojuegos Enero Marzo 2016 Tarea I El Laberinto de Harry Potter - 10% ½Es el evento nal en la copa de los tres magos! Con los otros dos competidores fuera de la batalla, Cedric Diggory y Harry Potter se pelean el campeonato. Para ello, deberán atravesar un complicado laberinto y alcanzar la copa del campeón. Cedric y Harry comienzan a andar en el laberinto, pero notan algo extraño: cada cierto tiempo, el laberinto cambia. ½Aparecen y desaparecen paredes como por arte de magia! ¾Quién alcanzará la copa primero? 1 El Juego A continuación se describirá el juego a implementar. 1.1 Escenario El juego se desarrollará en una matriz de tamaño N × M , donde N y M pueden ser escogidos por el jugador antes de comenzar. Inicialmente, la matriz se llenará de forma aleatoria con los siguientes tipos de celda: • Libre: Es una posición que está libre y por tanto, puede recorrerse. • Pared: Es una posición que tiene una pared y por tanto, no puede recorrerse. De entre las posiciones libres deben seleccionarse tres diferentes, las cuales serán la posición inicial de Harry, la posición inicial de Cedric y la posición de la copa, respectivamente. Se debe asegurar en todo momento que la cantidad de paredes corresponda al menos a un tercio ( 13 ) de la cantidad total de celdas. Para el tamaño de la matriz (variables N y M ), los valores podrán estar entre 10 y 100. 1.2 Evolución Cada T segundos, donde T puede ser escogido por el jugador antes de comenzar, se escogerá una posición arbitraria del escenario (que no corresponda a las posiciones de Harry, Cedric, ni la copa) e invertirá su tipo. Esto es, si era una pared, se convertirá en libre y viceversa. Para el tiempo T , el valor podrá estar entre 1 y 10. 1 1.3 Jugador El jugador estará en control de Harry. Las únicas instrucciones que debe recibir Harry son los movimientos hacia los cuatro puntos cardinales. Harry se moverá en la dirección propuesta si y solo si dicha posición está libre y dentro de la matriz. 1.4 Contrincante El contrincante será Cedric, el cual será controlado totalmente por inteligencia articial. Cedric deberá siempre tomar algún camino hasta la copa (de haber alguno) que sea de distancia mínima. Esto es, un camino X tal que no exista otro camino Y , donde Y atraviese menos celdas que X . Si existen varios caminos con tal distancia mínima, Cedric podrá tomar cualquiera de ellos. Nótese que cada vez que hay un cambio en la matriz, es posible que Cedric deba replantear el camino a tomar. 1.5 Ganador Una partida del juego termina cuando Harry o Cedric alcancen la copa y quien lo haga es el ganador. En este momento, el juego debe volver al menú principal. 1.6 Menú El menú principal del juego debe tener alguna manera de ingresar valores para las variables N , M y T y de comenzar un nuevo juego Los valores por defecto para todas las variables son los mínimos en su rango permitido. 2 Retos Extra Para aquellos que deseen un reto adicional (y hasta 4 puntos adicionales), pueden implementar alguna de estas extensiones sobre sus juegos: • El laberinto siempre deberá tener al menos un camino de Harry a la copa, y de Cedric a la copa. Esto incluye el inicio del juego y después de cualquier cambio en la matriz. 1 punto extra • El laberinto siempre deberá tener exactamente un camino de Harry a la copa, y de Cedric a la copa. Esto incluye el inicio del juego y después de cualquier cambio en la matriz. 1 punto extra • Hacer que sólo uno de entre Harry y Cedric puedan estar en una misma celda simultáneamente e implementar en Cedric la capacidad para escoger, no el camino con menor distancia, sino el camino que garantice su victoria (de ser posible), por ejemplo: bloqueando el camino de Harry. 2 puntos extra 2 Si realizan cualquiera de estas extensiones, deberán incluir una explicación de las estructuras y algoritmos utilizados en su informe. Nota: Note que si se realiza la segunda extensión, inmediatamente también se habrá realizado la primera, por lo que ganarían 2 puntos extra en total. 3 Entrega Ud. debe entregar un correo electrónico con: • El código fuente en el lenguaje y la herramienta de su elección. El lenguaje/herramienta en el cual implementar este juego es libre. Sin embargo, la herramienta escogida debe ofrecer facilidades para programar estructuras y algoritmos complejos e incorporarlos a la lógica del juego. La componente visual del juego no es importante en esta ocasión. Por ejemplo, las paredes podrían ser cuadrados rellenos, y Harry y Cedric podrían ser círculos de diferentes colores. Si se desea hacer un juego más llamativo visualmente, no está prohibido, más dicha componente no tendrá efecto en la evaluación. Todo el código debe estar debidamente documentado. • Un breve video que muestre el juego en funcionamiento, con diferentes conguraciones para las variables involucradas. • Un breve informe explicando la implementación de su juego y justicando todo aquello que considere necesario. En particular, el informe debe presentar una explicación de las estructuras y algoritmos usados para implementar la inteligencia articial de Cedric. Fecha de Entrega: Sábado 23 de Enero (Semana 5), hasta las 1:00 pm. Valor: 10%. R. Monascal / Enero 2016 3