Professional Documents
Culture Documents
TP Integrador N 02
FICHA TCNICA
EDAD DE LOS ALUMNOS: Alumnos del 2 cuatrimestre de TSP.
COMPETENCIAS
Para desarrollar el TP, debers tener conocimientos previos de los siguientes temas: Programacin bsica en lenguaje C++. Programacin modular y estructurada. Programacin orientada al objeto (OOP).
Al finalizar la tarea debers ser capaz de: Comprender los fundamentos de la OOP. Disear y administrar clases y objetos. Realizar un un juego utilizando el paradigma OOP de mediana complejidad.
TAREA
Durante el desarrollo de la tarea debers disear y desarrollar un videojuego utilizando como paradigma OOP. NOTA: Te sugiero que realices un batalla naval, aunque puedes elegir cualquier tipo de videojuego (accin, azar, lgica, etc.).
CONSIGNAS
CONSIGNAS PARA EL DESARROLLO
Lee atentamente todas las consignas antes de iniciar la tarea. Para llevar a cabo la tarea, te sugiero que dividas el proceso en etapas:
NOTA: Todo el desarrollo debe estar basado en clases, las que se definirn en archivos independientes tipo .h, los que sern incluidos en el archivo que contiene a la funcin main(). El uso de funciones independientes slo ser permitido en casos muy justificados. La interfase del usuario debe presentar las siguientes caractersticas: El videojuego debe comenzar con una pantalla de presentacin y pantalla de despedida.
terminar con
El control del programa debe realizarse a travs de un sistema de mens de varios niveles. Debe existir la posibilidad de acceder en cualquier momento de la ejecucin a un sistema de ayuda en lnea (pantallas explicativas, ejemplos, ayudas contextuales, etc.). Se debe tener la posibilidad de guardar y recuperar un juego iniciado. Debe generar, mantener y mostrar un archivo de los 10 mejores puntajes. Debe existir la posibilidad de salir del programa en cualquier momento de su ejecucin. Segn el momento de ocurrida la peticin de abandono, pueden presentarse diferentes situaciones que se detallan a continuacin: Si se presion la opcin salir del Men Principal, debe terminarse el programa. Si se presion la opcin salir, la tecla ESC o se realiz alguna accin equivalente, desde algn submen, debe retornarse al Men Principal. Si se presion la tecla ESC o se realiz alguna accin equivalente durante la ejecucin del videojuego debe pedirse confirmacin, ofrecerse la posibilidad de guardar el juego iniciado y retornar al Men Principal. NOTA: Los alumnos podrn realizar propuestas de mejoras sobre estos tpicos.
LAB II
TP Integrador N 02
// VALORES DE LA RESOLUCION DE VIDEO //----------------------------------------------------------------------------// MUY IMPORTANTE!!!! // // Antes de compilar hay que verificar que los valores de las variables de // entorno: SCREEN_WIDE (ancho de pantalla), SCREEN_HIGH (alto de pantalla) y // SCREEN_DEPH (profundidad de colores) tengan los valores correspondientes al // entorno fisico donde se ejecutara el sistema. //----------------------------------------------------------------------------#ifdef WIN32 #define SCREEN_WIDE 1280 #define SCREEN_HIGH 724 #define SCREEN_DEPH 32 #else #define SCREEN_WIDE 1280 #define SCREEN_HIGH 800 #define SCREEN_DEPH 16 #endif //============================================================================= // INCLUSION DE LA CLASE clsTipito. //----------------------------------------------------------------------------#include "clsTipito.h" //############################################################################# // PROGRAMA PRINCIPAL //============================================================================= int main ( int argc, char** argv ) { return 0; // Fin del programa principal. } //### FIN DE ARCHIVO ##########################################################
LAB II
TP Integrador N 02
// SISTEMA OPERATIVO : Linux (Ubuntu) / Windows XP. // IDE : Code::Blocks - 8.02. // COMPILADOR : GNU GCC Compiler. //============================================================================= // DESCRIPCION: // Este archivo contiene la definicion de la clase abstracta // clsBaseScreen perteneciente al sistema adn++ (Sistema de // Clases para Modo Grafico para C++). // // La clase clsBaseScreen es heredera de la clase clsError y // contiene los elementos basicos necesarios para la administracion // de las pantallas en el modo grafico. // //----------------------------------------------------------------------------// ___________________ // | clsAbstract | // |-----------------| // |-----------------| // | inherit(): void | // |_________________| // ^ // | // | // ___________|___________ // | clsError | // |---------------------| // | errorSDL: int | // | errorID : int | // |---------------------| // | showError(): void | // | getError(): int | // |_____________________| // ^ // | // | // __________________________________ // | clsBaseScreen | // |--------------------------------| // | imagen: SDL_Surface* | // | ancho: int | // | alto : int | // | color: colorRGB | // |--------------------------------| // | loadImage(char* archivo): bool | // | paste(SDL_Surface*): void | // | clean(): void | // | clean(colorRGB): void | // | getWide(): int | // | getHigh(): int | // | getPtr(): SDL_Surface* | // |________________________________| // ///////////////////////////////////////////////////////////////////////////////// #ifndef _CLSBASESCREEN_H #define _CLSBASESCREEN_H //############################################################################# // DEFINICION DE LA CLASE //============================================================================= class clsBaseScreen: virtual public clsError { //--------------------------------------------------------------------------// ATRIBUTOS //--------------------------------------------------------------------------protected: //--------------------------------------------------------------------------// METODOS
//--------------------------------------------------------------------------public: //------------------------------------------------------------------------// DE ACCION //------------------------------------------------------------------------//------------------------------------------------------------------------// DE INFORMACION //------------------------------------------------------------------------}; //***************************************************************************** // DEFINICION DE LOS METODOS //============================================================================= // METODO : bool loadImage(char* archivo) // ACCION : Carga un archivio de imagen de tipo bmp en memoria correspon// diente (RAM o Video). // PARAMETROS: char* archivo -> cadena con el path y nombre de archivo. // DEVUELVE : true -> exito / false -> fracaso. //----------------------------------------------------------------------------bool clsBaseScreen::loadImage(char* archivo) { } #endif // _CLSBASESCREEN_H //### FIN DE ARCHIVO ##########################################################
NOTA: En cada caso los parmetros deben ser correctamente explicados (tipo, nombre, funcin que cumple).
LAB II
TP Integrador N 02
Gua del programador (slo para los que lleguen a instancia de examen final).
NOTA: En esta gua se debe explicar claramente los distintos tpicos que hacen a los detalles del sistema y su instalacin (descripcin clara de cada librera y funcin, listado de mensajes de error con sus correspondientes soluciones, requisitos y mtodos de instalacin.). Debe entregarse con formato libre .odt (Open Document Text). Licencia de distribucin NOTA: En este documento se debe presentar toda la informacin pertinente al tipo de licencia requerida para la distribucin del software (GNU, Open Source, GPL, etc.). Debe entregarse con formato libre .odt (Open Document Text).
NOTA: Bajo ningn concepto se permitirn distribuciones de tipo propietario o que no incluyan los cdigos fuentes y la documentacin de licencias correspondientes..
La documentacin mnima a presentar est integrada por: Todo el trabajo prctico deber ser entregado en un archivo comprimido llamado LAB2 apellido de alumno TP 2.ZIP, que incluya: Archivos fuentes: cbp, cpp, h. Otros archivos imprescindibles para la compilacin y el funcionamiento del sistema.
Archivos grficos (slo es posible el uso de formato BMP). Archivos de sonido (mp3 o wav). Archivos de fuentes TTF (debern ser fuentes de uso libre).
Manual del usuario (slo si se llega a instancia de examen final). Manual del programador (slo si se llega a instancia de examen final). Licencia de distibucin. Crditos de otros autores.
PRODUCTO
PROCESO
Etapa 1: Organizacin
Organzate! Sin orden no podrs alcanzar los objetivos. Recuerda que tienes pocas clases para entregar tu produccin.
No te apresures, piensa.
Dedica tiempo a ordenar tus ideas. Lee bien esta gua, y asegrate de haber entendido bien todo lo que se te pide.
LAB II
TP Integrador N 02
Anota en la bitcora todo lo que se te vaya ocurriendo. Asgnale niveles jerrquicos a lo que vayas anotando. Repasa lo escrito. En papel haz un esquema de los niveles de men que necesitas, y de las opciones que figuran en cada uno de ellos.
Las caractersticas y compartimientos que tiene una persona, no son las mismas que
las que tienen una piedra, un rbol, un perro, un avin, un contador de vueltas o un medidor de tiempo ( Piensa en objetos no en funciones).
RECUERDA QUE No es lo mismo guardar un listado de nombres de personas con sus mejores puntajes, que guardar todo los datos que necesitas para reanudar un juego suspendido.
Etapa 8: Integracin
Integra en Code:Blocks todos los prototipos desarrollados en las etapas anteriores. Prueba y ajusta la integracin. NO TE OLVIDES DE: Validar todos los ingresos. Trabajar con mdulos pequeos. Poner cada clase en una librera independiente. Documentar todos los archivos, clases y mtodos.
RECURSOS
Esta Gua: "Lab2 Trabajo Prctico Integrador 1 Pautas 2011.odt Curso de Cpp - Pozo Coronado.pdf Introduccin a la OOP - Grupo EIDOS.pdf
LAB II
TP Integrador N 02
Curso de C++ Libro de C++ para descargar --> Autor: Salvador Pozo Coronado.
Adn++ Sistema de clases diseadas a partir de las libreras SDL por Rubn Calabuig.
Foxti Reader: Lector de archivos PDF (Portable Document Format), es una gran alternativa, aunque su licencia no es libre, sino freeware. 7Zip Programa libre para la compresin de archivos tipo ZIP
Computadora
Acceso a Internet
EVALUACIN
La nota de este trabajo se obtendr de los siguientes tpicos: Compilacin: 2 Ejecucin e interactividad: 2 Paradigma: 2 Documentacin: 2 Cumplimiento de todas las consignas: 2 La nota mnima de aprobacin es 6 (seis) puntos. Nota: los trabajos entregados fuera de plazo, sern aceptados en fechas acordadas con la ctedra. En los casos de entrega fuera de plazo, se descontarn 2 puntos. No se aceptarn trabajos vencidos estos plazos.