Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: peterfly en 14 Marzo 2012, 23:34 pm



Título: que librerias me faltan???
Publicado por: peterfly en 14 Marzo 2012, 23:34 pm
hola a todos...
me podriais decir que bibliotecas me faltan para el siguiente codigo???
Código:
/*La mansión del terror
programación de videojuegos con SDL*/

//abrimos librerias

#include <SDL/SDL.h>


//definicion de estructura de datos
#define HUESO 1
#define LLAVE 2
#define ESCALERA 3
#define PERRO 4

// Estructuras de datos para los objetos
struct objeto {
int estado; // Estado del objeto
char desc1[80]; // Descripción para estado 1
char desc2[80]; // Descripción para estado 2
int hab; // Habitación en la que se encuentra
int lotengo; // Indica si tengo este objeto en mi inventario
} objetos[5];
// Estructura de datos para las habitaciónes
struct habitacion {
char desc[255];
int norte;
int sur;
int este;
int oeste;
} habitaciones[10];
      
int main(){
     /*inicialización de estructura de datos*/
    
     //inicialización de objetos
     // hueso
objetos[HUESO].estado=1;
strcpy(objetos[HUESO].desc1,"un hueso");
strcpy(objetos[HUESO].desc2,"un hueso");
objetos[HUESO].hab=2;
objetos[HUESO].lotengo=0;
// llave
objetos[LLAVE].estado=1;
strcpy(objetos[LLAVE].desc1,"una llave sobre la lampara");
strcpy(objetos[LLAVE].desc2,"una llave sobre la lampara");
objetos[LLAVE].hab=3;
objetos[LLAVE].lotengo=0;
// escalera
objetos[ESCALERA].estado=1;
strcpy(objetos[ESCALERA].desc1,"una escalera");
strcpy(objetos[ESCALERA].desc2,"una escalera");
objetos[ESCALERA].hab=9;
objetos[ESCALERA].lotengo=0;
// perro
objetos[PERRO].estado=1;
strcpy(objetos[PERRO].desc1,"un perro rabioso");
strcpy(objetos[PERRO].desc2,"un perro comiendose un hueso");
objetos[PERRO].hab=9;
objetos[PERRO].lotengo=0;
    
     /*datos del mapa*/
// Habitación 1
strcpy(habitaciones[1].desc,"Estas en una pequeña habitación pintada de blanco. Junto a tipuedes ver una cama y una mesita de noche.");
habitaciones[1].norte=0;
habitaciones[1].sur=4;
habitaciones[1].este=0;
habitaciones[1].oeste=0;
// Habitación 2
strcpy(habitaciones[2].desc,"Estas en una habitación pintada de verde. Junto a ti puedes veruna cama y una mesita de noche.");
habitaciones[2].norte=0;
habitaciones[2].sur=5;
habitaciones[2].este=0;
habitaciones[2].oeste=0;
// Habitación 3
strcpy(habitaciones[3].desc,"Estas en el salón de la casa. Puedes ver una gran mesa rodeadade sillas.");
habitaciones[3].norte=0;
habitaciones[3].sur=6;
habitaciones[3].este=0;
habitaciones[3].oeste=0;
// Habitación 4
strcpy(habitaciones[4].desc,"Estas en el pasillo.");
habitaciones[4].norte=1;
habitaciones[4].sur=7;
habitaciones[4].este=5;
habitaciones[4].oeste=0;
     // Habitación 5
strcpy(habitaciones[5].desc,"Estas en el pasillo.");
habitaciones[5].norte=2;
habitaciones[5].sur=8;
habitaciones[5].este=6;
habitaciones[5].oeste=4;
// Habitación 6
strcpy(habitaciones[6].desc,"Estas en el pasillo.");
habitaciones[6].norte=3;
habitaciones[6].sur=9;
habitaciones[6].este=0;
habitaciones[6].oeste=5;
// Habitación 7
strcpy(habitaciones[7].desc,"Estas en el típico servicio, con sus típicas piezas.");
habitaciones[7].norte=4;
habitaciones[7].sur=0;
habitaciones[7].este=0;
habitaciones[7].oeste=0;
// Habitación 8
strcpy(habitaciones[8].desc,"Estas en la entrada de la casa. Puedes ver la puerta cerrada.");
habitaciones[8].norte=5;
habitaciones[8].sur=0;
habitaciones[8].este=0;
habitaciones[8].oeste=0;
// Habitación 9
strcpy(habitaciones[9].desc,"Estas en la cocina.");
habitaciones[9].norte=6;
habitaciones[9].sur=0;
habitaciones[9].este=0;
habitaciones[9].oeste=0;
/***
Inicialización del estado de juego.
***/
// variable que indica la habitación en la que estamos
int habitacionActual = 1;
// variable que indica cuantos objetos hay
int nobjetos = 4;
/***
game loop
***/
char verbo[30], nombre[30];
int i, accion;
int done = 0;
while (!done) {
// Mostramos información de la habitación.
// Descripción
printf("\n\n%s",habitaciones[habitacionActual].desc);
// Mostramos si hay algun objeto
for (i=1 ; i<=nobjetos ; i++) {
if (objetos[i].hab == habitacionActual) {
printf("\nTambien puedes ver ");
// mostramos la descripción del objeto según su estado
if (objetos[i].estado == 1) {
printf("%s",objetos[i].desc1);
} else {
printf("%s",objetos[i].desc2);
}
}
}
// Mostramos las posibles salidas
printf("\nPuedes ir dirección ");
if (habitaciones[habitacionActual].norte != 0)
printf ("Norte ");
if (habitaciones[habitacionActual].sur != 0)
printf ("Sur ");
if (habitaciones[habitacionActual].este != 0)
printf ("Este ");
if (habitaciones[habitacionActual].oeste != 0)
printf ("Oeste ");
// Leemos la entrada del jugador
printf("\n>>> ");
scanf("%s%s",verbo,nombre);
// Procesamos la entrada del jugador
// coger
if (!strcmp(verbo,"coger")) {
accion = 0;
// Hueso
if (!strcmp(nombre,"hueso") && objetos[HUESO].hab == habitacionActual) {
accion = 1;
objetos[HUESO].hab=0;
objetos[HUESO].lotengo=1;
printf("\nHas cogido el hueso.");
}
// Llave
if (!strcmp(nombre,"llave") && objetos[LLAVE].hab == habitacionActual) {
accion = 1;
// para coger la llave necesitamos la escalera
if (objetos[ESCALERA].lotengo == 1) {
objetos[LLAVE].hab=0;
objetos[LLAVE].lotengo=1;
printf("\nTras subirte a la escalera, alcanzas la llave.");
} else {
printf("\nNo alcanzo la llave. Está demasiado alta.");
}
}
// Escaleras
if (!strcmp(nombre,"escalera") && objetos[ESCALERA].hab == habitacionActual) {
accion = 1;
if (objetos[PERRO].estado == 2) {
objetos[ESCALERA].hab=0;
objetos[ESCALERA].lotengo=1;
printf("\nHas cogido las escaleras.");
} else {
printf("\nEl perro gruñe y ladra y no te deja cogerlo.");
}
}
if (accion == 0)
printf("\nNo puedes hacer eso.");
}
// dar
if (!strcmp(verbo,"dar")) {
accion = 0;
// Hueso
if (!strcmp(nombre,"hueso") && objetos[HUESO].lotengo == 1 && objetos[PERRO].hab ==
habitacionActual) {
accion = 1;
objetos[HUESO].lotengo=0;
objetos[PERRO].estado=2;
printf("\nEl perro coge el hueso y se retira a comerselo tranquilamente.");
}
if (accion == 0)
printf("\nNo puedes hacer eso.");
}
// usar
if (!strcmp(verbo,"usar")) {
accion = 0;
// Hueso
if (!strcmp(nombre,"llave") && objetos[LLAVE].lotengo == 1 && habitacionActual == 8) {
accion = 1;
printf("\nENHORABUENA!!! Has escapado de la mansión del terror.");
done = 1;
}
if (accion == 0)
printf("\nNo puedes hacer eso.");
}
// ir
if (!strcmp(verbo,"ir")) {
accion = 0;
// norte
if (!strcmp(nombre,"norte") && habitaciones[habitacionActual].norte != 0) {
accion = 1;
habitacionActual=habitaciones[habitacionActual].norte;
}
// sur
if (!strcmp(nombre,"sur") && habitaciones[habitacionActual].sur != 0) {
accion = 1;
habitacionActual=habitaciones[habitacionActual].sur;
}
// este
if (!strcmp(nombre,"este") && habitaciones[habitacionActual].este != 0) {
accion = 1;
habitacionActual=habitaciones[habitacionActual].este;
}
// oeste
if (!strcmp(nombre,"oeste") && habitaciones[habitacionActual].oeste != 0) {
accion = 1;
habitacionActual=habitaciones[habitacionActual].oeste;
}

if (accion == 0)
printf("\nNo puedes hacer eso.");
}
}

return 0;
 }



Título: Re: que librerias me faltan???
Publicado por: nirvguy en 15 Marzo 2012, 10:00 am
Por empezar fijate por SDL, jeje. Yo lo compilé sin problemas.


Título: Re: que librerias me faltan???
Publicado por: peterfly en 15 Marzo 2012, 20:41 pm
pues a mi no me compila...
me dice los siguientes errores:

in funcion "console_main"
[linker error] undefined reference to "SDL_main"
id returned 1 exit status


por que me pone esos errores si a ti te complia perfectamente???


Título: Re: que librerias me faltan???
Publicado por: Eternal Idol en 15 Marzo 2012, 21:42 pm
Te falta la libreria de importacion para resolver SDL_main ... busca el error en Google y vas a encontrar muchas respuestas.


Título: Re: que librerias me faltan???
Publicado por: peterfly en 16 Marzo 2012, 10:57 am
Te falta la libreria de importacion para resolver SDL_main ... busca el error en Google y vas a encontrar muchas respuestas.

me podriais decir cual es esa libreria que la he buscado en Google pero no la encuentro


Título: Re: que librerias me faltan???
Publicado por: Eternal Idol en 16 Marzo 2012, 11:16 am
Clickea aca (http://lmgtfy.com/?q=%5Blinker+error%5D+undefined+reference+to+%22SDL_main%22).