Llegamos a la última unidad. Hemos aprendido muchísimas cosas y es hora de integrarlas ahora en un proyecto completo. ¿Qué tal hacer otro juego? Aplicaremos los pasos de la ingeniería de software que nos ayudarán a crear el juego que queremos. Cuando programemos este juego estaremos usando conceptos de computación que hemos aprendido en el curso tales como secuencia, decisión e iteración, variable, evento, procedimiento y clonación. Y aún hay más, también veremos e integraremos nuevos conceptos como concurrencia, prototipar y broadcasting o envío de mensajes entre objetos. ¡A divertirnos programando!. Nuestro objetivo es diseñar y programar un juego completo. Los personajes elegidos son los zombies, pero a estos personajes de fantasía no les tenemos miedo. Aquí estamos prontos para jugar con ellos. Comenzamos. Como comentamos en unidades anteriores el proceso de la ingeniería de software requiere de establecer los requerimientos, diseñar e implementar el programa, documentar y probar, entre otras etapas. Este proceso se puede hacer en forma lineal, donde cada fase se completa antes de pasar a la siguiente. Esto significa, por ejemplo, completar todo nuestro código antes de realizar las pruebas del programa. Este enfoque se llama en cascada porque el desarrollo fluye hacia abajo de una fase a la siguiente sin volver atrás, como sucede con el agua de una cascada real. Hay más enfoques para el desarrollo de software que son más flexibles que el modelo de cascada permitiendo revisar, corregir y mejorar las fases previas. En este curso hemos recomendado seguir el enfoque incremental en el cual partimos con los requerimientos y diseño de nuestro programa y luego implementamos una versión básica del programa, la cual probamos y modificamos hasta que quede como deseamos. O sea construimos nuestro programa incrementalmente. Agregando más funciones y detalles en cada nuevo paso. Durante el proceso podemos decidir revisar nuestros requerimientos y diseño y luego seguir otra vez hacia adelante con las siguientes fases del proceso de desarrollo del software. Crearemos nuestro juego de zombies en forma incremental. Empezaremos por los requerimientos. ¿Qué juego queremos hacer? Conversando con amigos e inspirados en el conocido juego de plantas y zombies, pensamos en un juego que: sea sencillo de jugar, sea divertido, nos sorprenda, permita llevar el puntaje, tenga personajes simpáticos, tenga diferentes niveles, que haya recompensas o elementos que ayuden. tenga algún sonido y tenga claramente las instrucciones. Tenemos una interesante lista de requerimientos. Ten presente que, si en vez de zombies prefieres que sean robots, autos, pelotas u otros personajes, solamente tendrás que cambiar los disfraces que usemos, así que puedes hacer el juego que tú quieras. En el juego que crearemos primero aparecerán las instrucciones y luego se podrá jugar. Podemos crear un juego en el cual los zombies tratan de llegar a tu casa, pero los podemos alejar y lograr que se vayan. Si llegan a tu casa, termina el juego. Como elemento adicional, podemos poner unas flores que ayudarán a detener los zombies, pero sólo por unos segundos, se entretienen un breve tiempo y luego retomarán su objetivo de llegar a tu casa. También, como efecto sorpresa, los zombies cada tanto vienen en grupos grandes, como una verdadera invasión, y tendrás que apurarte para alejarlos a todos. O sea el juego podría definirse de esta manera: el objetivo es, moviendo el ratón, alejar la mayor cantidad posible de zombies, sumando un punto por cada uno que alejas. Si alguno llega a tu casa, pierdes. Los zombies aparecen de a uno o en grupos. Las flores ayudan a defender la casa haciendo que los zombies se detengan por unos segundos siempre que toquen una flor. Ya tenemos las principales características de nuestro juego. Es tiempo ahora de pensar acerca de cómo diseñar nuestro juego. Comencemos con el diseño de la interfaz. En la interfaz tendremos el diseño de los zombies y del personaje que los alejará. Podemos dibujar ese personaje como una escoba, así los barremos. Además de los zombies y de la escoba, tendremos las flores que podrán aparecer en diferentes lugares de la pantalla. Bien, ya sabemos cómo debe lucir nuestra interfaz durante el juego. Pero¸ ¿y cuando el juego termine?, o ¿antes de que empiece, cuando se dan las instrucciones al usuario? Pensemos sobre este punto. Las instrucciones podrían ser dadas por uno de los personajes del juego sobre el mismo escenario donde se juega, algo así como la imagen que ves en pantalla. Cuando el juego termina podríamos tener un fondo diferente, uno muy simple para informarle al jugador que el juego terminó. Por un lado tenemos la interfaz definida donde se verán los personajes de la escoba, del zombie y la flor. Por otro lado, debemos pensar y programar el movimiento del zombie, el control de tiempo, el puntaje, las flores y más cosas. Vamos de a poco. En el próximo video diseñaremos nuestro código.