lenguajes de progamación

Transcripción

lenguajes de progamación
LENGUAJES DE PROGAMACIÓN
T AR E A 1 : P O LIM OR FIS M O Y RE GLA S D E L J U E GO E N C.
Ayudantes:
Mauricio Salinas [email protected]
Esteban Villalobos [email protected]
Joaquín Vergara [email protected]
Profesor:
Francisco Bórquez
OBJETIVOS.
El alumno aplicará conceptos avanzados de programación tales como el polimorfismo para
llevar a cabo los requerimientos que esta tarea contiene. Además, analizara y creará las reglas
programáticas para un sencillo juego en lenguaje C.
REQUERIMIENTOS.






Se debe implementar un sistema de configurado del ecosistema, el cual configure
tanto el número de elementos en el ambiente, como las características propias de cada
elemento. La entrada de las características debe ser a través de un archivo de texto.
El programa debe tener una parte gráfica en el cual el usuario vea el ambiente y los
elementos que contiene.
El mapa es de tamaño “infinito”, pero gráficamente el mapa es de tamaño 8x8, el
personaje puede avanzar, moverse hacia arriba y hacia abajo, pero el elemento
(asterisco, letra, o lo que se le ocurra al alumno para representar los objetos) que
representa al animal elegido por el alumno no se mueve en el mapa, sino que de los
bordes (dependiendo de hacia dónde se mueva) aparece algún componente del
ecosistema.
Debe ser sólo para un jugador, los elementos del ecosistema que no representan al
personaje elegido por el alumno, deben ser manejador por la máquina.
El movimiento de los elementos del ecosistema que no corresponden jugador deben
seguir las siguientes reglas.
La posición de las plantas en el mapa no cambia, pero si cambia su posición relativa
respecto del personaje principal.


Los Carnívoros siempre que aparezcan en el mapa se mueven hacia el personaje
principal, sin importar hacia donde éste se mueva.
Los Herbívoros deben seguir las siguientes reglas.
o Si el animal elegido por el alumno es un herbívoro:
 Si hay plantas visibles en el mapa (8x8) deben dirigirse hacia ellas y
comérselas. En caso de no haber plantas visibles, se quedan en su
posición.
o Si el animal elegido por el alumno es un carnívoro:
 Deberán quedarse en su lugar hasta que el depredador este a un rango
de distancia de 4 celdas, luego de eso, se dan cuenta que los están
acechando y deberán correr en cualquier dirección, excepto en la que
se encuentra el depredador, manteniendo esa dirección por 3 turnos
En este caso, los herbívoros ignoran las plantas, pues están corriendo
por sus vidas.
EXPLICACIÓN DEL JUEGO.
El juego debe presentar una pantalla de bienvenida, y mostrar la configuración actual del
juego (parámetros leídos del archivo de texto). Es decir, debe mostrar cuantas plantas,
herbívoros y carnívoros habrá en el mapa, como los parámetros de fin del juego (cuantas
plantas o animales hay que comer). Además deberá permitir al usuario elegir entre herbívoro
y carnívoro. Una vez seleccionado el animal, el juego comienza, dibujando la parte visible del
mapa, y la vida del jugador y cuantos elementos faltan para la finalización del juego. Una vez
terminado el juego, se muestran las estadísticas (cuantas plantas/animales se comieron y
cuantas veces fue mordido por un carnívoro) y se termina la ejecución.
REGLAS DEL JUEGO.










Los herbívoros tienen una probabilidad de saltar, por ejemplo, 1 de cada 5 pasos (1
cuadro) se convierte en salto (2 o más cuadros).
Los Carnívoros se alimentan solamente cuando el enemigo está muerto.
Cada vez que el personaje se alimenta, recupera un porcentaje de su vida.
Cada herbívoro puede comer 2 turnos de cada planta.
Cada carnívoro puede comer 4 turnos de cada animal.
Cuando un carnívoro alcanza a un herbívoro, lo aturde, impidiendo que este último
pueda saltar por 1 turno.
Si un carnívoro está atacando a un herbívoro, este último no puede alimentarse de una
planta.
Las plantas deben ser esquivadas, no se puede pasar por encima de ellas.
Una vez devorada una planta o un animal, el espacio que ocupaba queda vacio, y se
puede pasar por ese espacio.
Una vez que un elemento desaparece de la porción visible del mapa, desaparece por
siempre del juego.
ESTRUCTURA Y FUNCIONES A UTILIZAR.
STRUCT ANIMAL{
VOID (*MOSTRARATRIBUTOS) (VOID *);
VOID (*INGRESARDATOS) (VOID *);
CHAR TIPO;
// ‘H’ O ‘C’
VOID* ANIMAL; // ES PTR A ANIMALCARNIVORO O ANIMALHERBIVORO.
}
STRUCT ANIMALCARNIVORO{
CHAR NOMBRE[20];
INT VIDA;
INT NRO_COMIDAS;
INT ATAQUE;
}
STRUCT ANIMALHERBIVORO{
CHAR NOMBRE[20];
INT VIDA;
INT DEFENSA;
INT NRO_COMIDAS;
INT RAND_MOV;
}
SOBRE LA ENTRADA DEL JUEGO.
La entrada del juego será a través de un archivo de texto que incluya todo lo relacionado con
la configuración del medio ambiente. El nombre del archivo de entrada deberá ser
entrada.txt.
C
5
H
15
P
20
*
 tipo elemento en mapa (Carnívoro)
 cantidad en mapa
 tipo elemento en mapa (Herbívoro)
 cantidad en mapa
 tipo elemento en mapa (Plantas)
 cantidad en mapa
 indica que a continuación viene el número de elementos que hay que comer
para finalizar el juego
 cantidad de elementos que hay que comer para finalizar el juego.
4
REQUERIMIENTOS ADICIONALES.


Se debe implementar una lista enlazada simple para la creación y configuración de
los elementos del ecosistema. Esta debe ser de largo variable, por lo cual se requiere el
uso de memoria dinámica.
No está permitido el uso de librerías externas para el manejo de listas.






Se debe trabajar sobre el sistema operativo Fedora presente en los computadores de
la Universidad.
El programa debe incluir un MAKEFILE para su compilado.
Como la lista enlazada no es parte del programa en sí, debe estar en archivos
separados, con su respectiva separación en .h y .c.
Cada definición de estructuras y cabeceras de funciones deben estar en un archivo .h.
Cada función de configurado de elementos, debe estar separados en archivos .c.
Se debe liberar la memoria al momento de finalizar el programa.
ARCHIVOS A ENTREGAR.
Resumiendo lo anterior, los archivos mínimos a entregar serian:








progenitorC.c (función de configuración de animales de tipo carnívoro).
progenitorH.c (función de configuración de animales de tipo herbívoro).
Progenitores.c (función de configuración de animales).
main.c (Archivo con programa principal).
MAKEFILE (Archivo de compilación automática).
progenitores.h (Archivo con estructuras y prototipos de funciones).
listaSeresVivos.c (Archivo con funciones de lista enlazada).
listaSeresVivos.h (Archivo con estructuras y prototipos de funciones de lista
enlazada).
SOBRE LA ENTREGA.



La revisión se efectuará sobre el sistema operativo Fedora presente en los
computadores del laboratorio de la Universidad.
El código debe venir identado y sin warnings.
Cada función debe llevar una descripción según lo establecido por el siguiente
ejemplo.
/******** Funcion: Suma_Enteros ********************
Descripcion: suma dos enteros positivos
Parametros:
n1 entero
n2 entero
Retorno: resultado de la operacion aritmetica de la suma entero
************************************************/


Debe estar presente el archivo MAKEFILE para que se efectúe la revisión.
Se debe trabajar en grupos de dos personas.





La entrega debe realizarse en tarball (tar.gz) y debe llevar el nombre Tarea1LPRolIntegrante-1-RolIntegrante-2.
El archivo README.txt debe contener nombre y rol de los integrantes del grupo.
La entrega será usando un método que será informado a la brevedad y el plazo
máximo de entrega es hasta el 5 de Mayo a las 23:59.
Por cada día de atraso se descontarán 20 puntos.
Las copias serán evaluadas con nota 0.

Documentos relacionados