Proyecto 1 Sistema De Monitoreo Y Control De Sondas Robots
Enviado por TheKillero001 • 20 de Abril de 2014 • 5.430 Palabras (22 Páginas) • 442 Visitas
Índice
Introducción ___________________________________________________3
Desarrollo _____________________________________________________4
Capturas de la aplicación y Análisis _________________________________5-6
Fragmentos de código principales __________________________________ 7 – 8
Código Fuente__________________________________________________9-16
Conclusiones Generales__________________________________________17
Bibliografia_____________________________________________________18
Introducción:
El lenguaje de programación C es uno de los más utilizados (si no el que más) en la programación de sistemas software. Es similar a Python en muchos aspectos fundamentales: presenta las mismas estructuras de control (selección condicional, iteración), permite trabajar con algunos tipos de datos similares (enteros, flotantes, secuencias), hace posible definir y usar funciones, etc. No obstante, en muchas otras cuestiones es un lenguaje muy diferente.
C presenta ciertas características que permiten ejercer un elevado control sobre la eficiencia de los programas, tanto en la velocidad de ejecución como en el consumo de memoria, pero a un precio: tenemos que proporcionar información explıcita sobre gran cantidad de detalles, por lo que generalmente resultan programas más largos y complicados que sus equivalentes en Python, aumentando así la probabilidad de que cometamos errores
Simple DirectMedia Layer (SDL) es un conjunto de bibliotecas desarrolladas en el lenguaje de programación C que proporcionan funciones básicas para realizar operaciones de dibujo en dos dimensiones, gestión de efectos de sonido y música, además de carga y gestión de imágenes.
En Este Proyecto Veremos Una complementación entre el lenguaje de programación C y la biblioteca SDL con la cual Lograremos desarrollar un pequeño juego que será el resultado Del proyecto 1…
Desarrollo
Para el desarrollo del proyecto 1 ocupamos las siguientes Herramientas De trabajo –informático:
Lenguaje de programación C: Es un lenguaje de programación de propósito general que ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen conjunto de operadores. No es un lenguaje de muy alto nivel y más bien un lenguaje pequeño, sencillo y no está especializado en ningún tipo de aplicación. Esto lo hace un lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente.
Dev C++: Es un entorno de desarrollo para los lenguajes C y C++. Además del consabido editor, añade un compilador y otras utilidades menos evidentes que lo convierten en un gran aliado en la programación.
Link De Descarga: http://educa2011.uct.cl/mod/resource/view.php?id=112332
SDL: Es un conjunto de bibliotecas desarrolladas en el lenguaje de programación C que proporcionan funciones básicas para realizar operaciones de dibujo en dos dimensiones
Link De Descarga: http://educa2011.uct.cl/mod/resource/view.php?id=112324
http://educa2011.uct.cl/mod/resource/view.php?id=112331
Capturas De la Aplicación y Análisis
Al Correr la aplicación lo que nos muestra la ventana de 640x480 con 4 sondas dentro de un Mapa 2D los cuales se desplazan de manera aleatoria por la pantalla
Instrucciones:
Al Presionar La tecla F1 Damos la instrucción de que se muestre en la parte superior el panel de control de las sondas con los niveles de Oxígeno, Carbono, Nitrógeno e Hidrogeno de la baldosa donde se encuentra parada la sonda (Gráficos). Además de la posición en que se encuentra en este momento (mini Cámara) y Su nivel de Batería (Barra Fosforescente)
Si presionamos La tecla F2 Se nos pausara la aplicación para poder Ubicar a nuestros Robots dentro del mapa 2D.
Si Presionamos la Letra N se nos volverá a cargar el Mapa 2D con nuevas baldosas En un Orden Aleatorio
Una vez que las sondas dejen de moverse, es decir, se le agote su batería mediante la tecla R se le puede recargar la batería en una 100%.
Fragmentos de código más significativos
Método primordial en el juego, ya que este genera el mapa aleatorio y le asigna componentes químicos a las baldosas del juego, y básicamente en este mapa es la base de todo el juego.
int createMapAleatorio(short nRows,short nCols, SDL_Surface *imagen){
for(i=0; i<nCols;i++){
for(j=0; j<nRows;j++){
short random = rand()%12;
MAPA[i][j] = random;
arrayComponentes[i][j].ox = 32+(rand()%64);
arrayComponentes[i][j].ca = 32+(rand()%64);
arrayComponentes[i][j].ni = 32+(rand()%64);
arrayComponentes[i][j].hi = 32+(rand()%64);
}
}
return 1;
}
Método que se encarga de realizar el scrolling sobre sobre la superficie secundaria, para realizar esto recibe como parámetro la pasión actual del mouse sobre la superficie, si esta posición es mayor al tamaño de la superficie donde se encuentra el mapa menos el tamaño de la pantalla donde se muestra, nuestra superficie avanzara 5 pixeles hacia la dirección señalada, todo esto ocurre si el mouse se desplaza aproximadamente 100 pixeles en cualquier dirección partiendo desde el centro de la pantalla donde se visualiza. El método devuelve SDL_Rect con la posición de la vistaCamara, que es lo que ve la persona que mueve el mouse.
SDL_Rect scroll(SDL_Rect vistaCamara,SDL_Rect motion){
if(motion.x >=1024-(640-32)){
motion.x += 5;
vistaCamara.x += 5;
if(vistaCamara.x >=1024-640)
vistaCamara.x =1024-640;
}else if(motion.x <= 1024-(640-32)){
motion.x -= 5;
vistaCamara.x -=5;
if(vistaCamara.x <=0)
vistaCamara.x =0;
}
if(motion.y >= 768-(480-32)){
motion.y += 5;
vistaCamara.y += 5;
if(vistaCamara.y >= 768-480)
vistaCamara.y = 768-480;
}else if(motion.y <= 768-(480-32)){
...