You are on page 1of 8

UNIVERSIDAD DE SANTIAGO FACULTADA DE INGENIERA DEPARTAMENTO DE INFORMTICA

Zanahoria Trotadora Informe n1

Nombre: Sebastian Condeza R.U.T: 18.340.028-2 Nombre Profesor: Jos allende Nombre ayudante: Gabriel Godoy

UNIVERSIDAD DE SANTIAGO FACULTADA DE INGENIERA DEPARTAMENTO DE INFORMTICA

INDICE

Introduccin. 1 Marco terico ...... 2 Desarrollo del tema.. 3 Conclusiones.... 6 Referencias... 7

UNIVERSIDAD DE SANTIAGO FACULTADA DE INGENIERA DEPARTAMENTO DE INFORMTICA 1

Introduccin
En el mundo de la informtica existen variados lenguajes de programacin, en este informe se dar a conocer el lenguaje C bajo el criterio del paradigma imperativo ( el cual consiste en entregar ordenes), y a su vez aprender el funcionamiento de punteros, punteros dinmicos y estructuras, y cules son sus ventajas frente a las variables comunes y corrientes. A su vez en este informe contendr informacin sobre como fue creado el programa Zanahoria Trotadora, sus funciones, y que hace cada una de estas.

UNIVERSIDAD DE SANTIAGO FACULTADA DE INGENIERA DEPARTAMENTO DE INFORMTICA


2

Marco Teorico
Segn las herramientas dadas por el curso de paradigmas de programacin, y los conocimientos aprendidos por medios externos, para comenzar a resolver el problema se debe partir por lo bsico, como por ejemplo, definir el nivel de dificultad que se nos presenta, esto puede variar segn el lenguaje como al problema en s. Por lo que se puede concluir que debemos comprender el paradigma de programacin que ocupa el lenguaje que necesitamos para resolver el problema presentado. Al descubrir que el lenguaje de programacin que debemos ocupar es C, se sabe que es un lenguaje imperativo, lo que significa que este lenguaje se caracteriza por poseer la capacidad de dar ordenes de manera secuencial, de manera que si es usado con cautela, se puede llegar a la solucin del problema. A partir de esta metodologa, el lenguaje se vuelve ms complejo al ingresar funciones complejas, como estructura de datos, punteros y el manejo de libreras, de tal manera que los tipos de problema que el lenguaje era capaz de resolver aumentaran. Un ejemplo de esto sera el manejo de libreras, que nos permite ordenar el cdigo en cdigos ms pequeos, o sub-cdigos que permiten identificar de una manera ms eficaz los errores y mantener una estructura ms amigable simplificar al ojo humano.

Otro ejemplo seria la estructura de datos, que nos permite agrupar variables dentro de otra, para una mejor visualizacin y el cdigo.

Y por ltimo los punteros, que nos permiten acceder a direcciones de memorias, para poder modificar las variables de una manera mucho ms eficiente.

UNIVERSIDAD DE SANTIAGO FACULTADA DE INGENIERA DEPARTAMENTO DE INFORMTICA


3

Desarrollo del tema


El problema entregado en el enunciado, consista en que el usuario tomaba control sobre una zanahoria, la cual estaba en un tablero rodeada de conejos hambrientos, cada vez que la zanahoria (el usuario), generaba un movimiento, los conejos se movan de manera tal, que quedaran lo ms cerca posible de la zanahoria, para la mala fortuna de los conejos, al generar este movimiento podan chocar entre ellos, lo cual se traduca en una muerte sbita para ellos, o se topaban con un cadver, donde corran la misma suerte que el conejo fallecido. Volviendo al usuario, para avanzar en el juego, es necesario que la zanahoria se mueva a travs de el campo generando la mala fortuna sobre los conejos, y en caso de que este acorralada, poda usar un poder con el cual poda teletransportarse, como datos adicionales, cada vez que el jugador suba de nivel, el juego volva a iniciar, pero con mas enemigos, o con tems que favorecan al enemigo, cada vez que el usuario hacia un movimiento exitoso, se sumaba puntaje, y cuando este eliminaba conejos tambin. A simple inspeccin el problema parece complicado, pero en una situacin como esta, lo ms inteligente, es separar el problema en funciones pequeas, que juntas sean capaces de generar la solucin a esto. Por esto, para resolver el problema, proced en primer lugar creando una interface amigable al usuario, la cual es un men, en el cual puedes navegar con los botones de movimiento de arriba y abajo, esta interfaz consta de 4 funciones: Menu(), Menu_Nuevojuego(), Menu_CargarJuego(), Menu_TOP10(), cada una como su nombre explica tiene una funcin distinta.

UNIVERSIDAD DE SANTIAGO FACULTADA DE INGENIERA DEPARTAMENTO DE INFORMTICA


Cabe destacar que en el principio del archivo, para usos posteriores, se definen las siguientes estructuras: Struct con: se utiliza para almacenar la cantidad de conejos, y a su ves se utiliza para cuando aumenta de nivel el juego, guardar el numero decimal de el porcentaje que aumenta Struct tram: se utiliza para almacenar la cantidad de trampolines y a su ves se utiliza para cuando aumenta de nivel el juego, guardar el numero decimal de el porcentaje que aumenta Struct zanahoria: guarda la posicin de la zanahoria y si esta vive o no Struc conejo: guarda la posicin de un conejo, si est vivo y si esta sobre un trampoln struct trampoln: Guarda la posicin de los trampolines y si estn ocupados Por ahora enfoqumonos en que sucede cuando el usuario escoge la opcin NuevoJuego. Al apretar la tecla j o 5, la funcin Menu_NuevoJuego() llama a la funcin PrepararNuevoJuego() la cual recopila datos para crear un nuevo juego(filas, columnas, conejos), asigna algunas variables, como score = 0, levelgame = 0, y llama la funcin ComenzarJuego(fil,col,levelgame,score) la cual crea un arreglo dinamico de conejos y trampolines, y tambien una matriz dinmica, asigna valores como zanahoria.vivo = 1; lo cual indica que la zanahoria esta con vida, y llama la funcin posicionarconejos(fil,col,AI) y posicionartrampolines(fil,col,BUFF), asigna la posicin de la zanahoria que sea el centro de el tablero(Matriz) y finalmente entra en un ciclo while, el cual llama las funciones Movimiento_Zanahoria(mueve la zanahoria si es que no se suicida al hacerlo, eso se verifica con la funcin suicidio(), tambin produce la tele transportacin si es que el jugador presiona t, guarda la partida si el jugador presiona s) y luego la funcin Movimiento_Conejo()la cual mueve los conejos, y en caso de que se coman a la zanahoria manda un mensaje de game over, este revisa el puntaje obtenido, y lo inscribe en el top10 si es necesario. Tambin la funcin movimiento_conejo() revisa cuantos conejos hay con vida, si estos son 0, llama la funcin ComenzarJuego() con parmetros de cantidad de conejos y cantidad de trampolines, con sus funciones de aumento ( aumentarcon()aumentartram())

5 De vuelta en el men inicio, cuando el usuario escoje la opcin 2(CargarJuego()), el programa lee el archivo savegame.conf para poder llamar a la funcin ComenzarJuego con las variables correspondientes

UNIVERSIDAD DE SANTIAGO FACULTADA DE INGENIERA DEPARTAMENTO DE INFORMTICA


Y finalmente cuando el usuario elije la opcin top10, el programa lee el archivo top10.conf, y muestra en pantalla los resultados, finalmente vuelve a la pantalla de inicio Finalmente tenemos nuestro problema resuelto 6

Conclusiones
Tras resuelto el problema, se puede concluir que el uso de punteros y estructuras en el lenguaje de programacin c aumenta considerablemente las posibilidades que tienes para resolver un problema. Tambin se puede concluir que la herramienta CodeBlocks es ineficiente para hacer un trabajo de estas envergaduras, ya que no es aceptable que uno pueda llamar funciones de libreras que no se han incluido en el programa (ejemplo: llamar getch sin haber incluido la librera conio )

UNIVERSIDAD DE SANTIAGO FACULTADA DE INGENIERA DEPARTAMENTO DE INFORMTICA

Referencias
No utilice, todo e l cdigo fue desarrollado por m.

You might also like