Título: generar números aleatorios en dev c Publicado por: Quake-man en 26 Agosto 2011, 12:44 pm Hola el caso es que no se como generar números aleatorios en dev c ya que estoy utilizando sdl pero antes en c en programas de consola hacia random(100); por ejemplo y ya esta pero asi no se como se hace intente srand(time(NULL)); etc pero no funciona...... quisiera que me ayuden porfavor.
Título: Re: generar números aleatorios en dev c Publicado por: Queta en 26 Agosto 2011, 13:26 pm Puedes usar srand/rand igualmente; de http://www.cplusplus.com/reference/clibrary/cstdlib/srand/ (http://www.cplusplus.com/reference/clibrary/cstdlib/srand/):
Código
Título: Re: generar números aleatorios en dev c Publicado por: Quake-man en 26 Agosto 2011, 14:05 pm pero no me genera el ejecutable
Título: Re: generar números aleatorios en dev c Publicado por: Queta en 26 Agosto 2011, 14:11 pm ¿Te da errores de compilación? ¿Nos puedes dar alguna pista más? Sin información no haremos nada.
Título: Re: generar números aleatorios en dev c Publicado por: Quake-man en 26 Agosto 2011, 14:13 pm me lo compila sin problemas pero después voy a la carpeta donde esta el ejecutable para probarlo y no está
Título: Re: generar números aleatorios en dev c Publicado por: Quake-man en 26 Agosto 2011, 14:14 pm este es el codigo es para un juegito quiero que genere numeros aleatorios y que si se por ejemplo si es numero se encuentra entre 50 y 10 que el muñequito se mueva a la derecha por ejemplo....
#include <stdio.h> #include <stdlib.h> #include <SDL/SDL.h> #include "SDL/SDL_thread.h" #include<time.h> int main(int argc, char *argv[]) { //declaración de variables SDL_Surface * screen; SDL_Surface * fondo; SDL_Surface * fondo1; SDL_Surface * fondo2; SDL_Surface * fondo3; SDL_Surface * fondo4; SDL_Surface * fondo5; SDL_Surface * fondo6; SDL_Surface * disparo; SDL_Surface * frameact; int b; int hora = time(NULL); SDL_Event event; int salir=0; SDL_Rect pos; SDL_Rect posd; SDL_Rect posnave; SDL_Rect pos2; //inicialización de SDL if(SDL_Init(SDL_INIT_VIDEO)<0) { printf("ERROR: %s \n", SDL_GetError()); return 1; } screen = SDL_SetVideoMode(580,470,24, SDL_SWSURFACE); if (screen==NULL){ printf("Error: %s \n", SDL_GetError()); return 1; } //parte logica pos.x=0; pos.y=0; pos.w=56; pos.h=81; pos2.x=300; pos2.y=300; pos2.w=275; pos2.h=325; posd.w=45; posd.h=20; fondo = SDL_LoadBMP ("pacman_central.bmp"); fondo1 = SDL_LoadBMP ("pacman_arriba.bmp"); fondo2 = SDL_LoadBMP ("pacman_abajo.bmp"); fondo3 = SDL_LoadBMP ("pacman_derecha.bmp"); fondo4 = SDL_LoadBMP ("pacman_izquierda.bmp"); fondo5 = SDL_LoadBMP ("pacman.bmp"); disparo = SDL_LoadBMP ("shoot.bmp"); SDL_BlitSurface (fondo5 , NULL, screen, &pos2); SDL_Flip (screen); //loop principal while (! salir){ SDL_PollEvent(&event); //si se pulso una tecla if (event.type == SDL_KEYDOWN){ if (event.key.keysym.sym == SDLK_ESCAPE){ salir=1; } b=Srand(hora); if (b>0 && b<25)pos2.x++; if (b>25 && b<35 ) pos2.x--; if (b>40 && b<45) pos2.y++; if (b>50 && b<60)pos2.y--; //disparo if (event.key.keysym.sym == SDLK_SPACE){ posd.x=pos.x+25; posd.y=pos.y-18; if (frameact==fondo3){ while (posd.x<=640){ SDL_BlitSurface (disparo , NULL, screen, &posd); SDL_Flip (screen); posd.x=posd.x + 8; if( posd.x > pos2.x && posd.x < ( pos2.x + pos2.w ) ) if( posd.y > pos2.y && posd.y < ( pos2.y + pos2.h ) ) salir=1; } } if (frameact==fondo4){ while (posd.x>=0){ SDL_BlitSurface (disparo , NULL, screen, &posd); SDL_Flip (screen); posd.x=posd.x - 6; if( posd.x > pos2.x && posd.x < ( pos2.x + pos2.w ) ) if( posd.y > pos2.y && posd.y < ( pos2.y + pos2.h ) ) salir=1; } } } //fin disparo //direcciones de movimiento if (event.key.keysym.sym == SDLK_RIGHT){ frameact=fondo3; SDL_BlitSurface (fondo3 , NULL, screen, &pos); SDL_Flip (screen); if( pos2.x > pos.x && pos2.x < ( pos.x + pos.w ) ) if( pos2.y > pos.y && pos2.y < ( pos.y + pos.h ) ) salir=1; pos.x=pos.x + 2; } if (event.key.keysym.sym == SDLK_LEFT){ frameact=fondo4; SDL_BlitSurface (fondo4 , NULL, screen, &pos); SDL_Flip (screen); if( pos2.x > pos.x && pos2.x < ( pos.x + pos.w ) ) if( pos2.y > pos.y && pos2.y < ( pos.y + pos.h ) ) salir=1; pos.x = pos.x - 2; } if (event.key.keysym.sym == SDLK_UP){ frameact=fondo1; SDL_BlitSurface (fondo1 , NULL, screen, &pos); SDL_Flip (screen); if( pos2.x > pos.x && pos2.x < ( pos.x + pos.w ) ) if( pos2.y > pos.y && pos2.y < ( pos.y + pos.h ) ) salir=1; pos.y = pos.y - 2; } if (event.key.keysym.sym == SDLK_DOWN){ frameact=fondo2; SDL_BlitSurface (fondo2 , NULL, screen, &pos); SDL_Flip (screen); if( pos.x > pos2.x && pos.x < ( pos2.x + pos2.w ) ) if( pos.y > pos2.y && pos.y < ( pos2.y + pos2.h ) ) salir=1; pos.y = pos.y + 2; } } } } Título: Re: generar números aleatorios en dev c Publicado por: Queta en 26 Agosto 2011, 14:21 pm ¿Estás compilando en Debug o Release? ¿Qué IDE y qué compilador usas?
Título: Re: generar números aleatorios en dev c Publicado por: Quake-man en 26 Agosto 2011, 14:33 pm uso dev c++
Título: Re: generar números aleatorios en dev c Publicado por: BlackZeroX en 26 Agosto 2011, 19:16 pm .
Puedes usar para generar numeros aleatorios entre A y B este codigo. Código
Dulces Lunas!¡. Título: Re: generar números aleatorios en dev c Publicado por: Queta en 26 Agosto 2011, 20:43 pm BlackZeroX▓▓▒▒░░, me parece que su problema no es este :xD. Igualmente, como no nos dé más información, puede responder mis preguntas si quiere, no solucionaremos esto nunca.
Título: Re: generar números aleatorios en dev c Publicado por: Quake-man en 26 Agosto 2011, 22:54 pm bueno ya lo solucione.
|