Autor
|
Tema: generar números aleatorios en dev c (Leído 13,502 veces)
|
Quake-man
Desconectado
Mensajes: 51
|
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.
|
|
|
En línea
|
|
|
|
Queta
Desconectado
Mensajes: 267
|
Puedes usar srand/ rand igualmente; de http://www.cplusplus.com/reference/clibrary/cstdlib/srand/: /* srand example */ #include <stdio.h> #include <stdlib.h> #include <time.h> int main () { printf ("Again the first number: %d\n", rand() %100); return 0; }
|
|
|
En línea
|
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
|
|
|
Quake-man
Desconectado
Mensajes: 51
|
pero no me genera el ejecutable
|
|
|
En línea
|
|
|
|
Queta
Desconectado
Mensajes: 267
|
¿Te da errores de compilación? ¿Nos puedes dar alguna pista más? Sin información no haremos nada.
|
|
|
En línea
|
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
|
|
|
Quake-man
Desconectado
Mensajes: 51
|
me lo compila sin problemas pero después voy a la carpeta donde esta el ejecutable para probarlo y no está
|
|
|
En línea
|
|
|
|
Quake-man
Desconectado
Mensajes: 51
|
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;
}
} } }
|
|
|
En línea
|
|
|
|
Queta
Desconectado
Mensajes: 267
|
¿Estás compilando en Debug o Release? ¿Qué IDE y qué compilador usas?
|
|
|
En línea
|
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
|
|
|
Quake-man
Desconectado
Mensajes: 51
|
uso dev c++
|
|
|
En línea
|
|
|
|
BlackZeroX
Wiki
Desconectado
Mensajes: 3.158
I'Love...!¡.
|
. Puedes usar para generar numeros aleatorios entre A y B este codigo. #include <stdlib.h> //#include <time.h> #define swap( One, Two) One ^= Two; Two ^= One; One ^= Two; int randNumber(int iMin, int iMax) { if (iMin > iMax) { swap(iMin, iMax); // macro 3 lineas. } //srand(time(NULL)); // No usado debido a que genera numeros repetidos si se usa la funcion muy seguida en un lapso de tiempo muy corto... return (rand() % (iMax - (iMin - 1) ) + iMin ); }
Dulces Lunas!¡.
|
|
|
En línea
|
The Dark Shadow is my passion.
|
|
|
Queta
Desconectado
Mensajes: 267
|
BlackZeroX▓▓▒▒░░, me parece que su problema no es este . Igualmente, como no nos dé más información, puede responder mis preguntas si quiere, no solucionaremos esto nunca.
|
|
|
En línea
|
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Generar numeros aleatorios sin repeticion[C]
Programación C/C++
|
HRSLASH
|
2
|
25,320
|
28 Diciembre 2010, 06:58 am
por von Newman
|
|
|
Generar números aleatorios sin que se repitan ... en C++
Programación C/C++
|
drawiz
|
4
|
27,970
|
17 Octubre 2019, 07:46 am
por Mecanma
|
|
|
[Aporte]Generador de números aleatorios en Vb6 (con mínimo y máximo)
Programación Visual Basic
|
martin_poipon
|
5
|
8,069
|
28 Mayo 2011, 22:33 pm
por BlackZeroX
|
|
|
[Reto Bash] Generar x aleatorios y calcular el tiempo de ejecución.
Scripting
|
Runex
|
1
|
3,489
|
28 Marzo 2014, 20:26 pm
por lufalas
|
|
|
Generar caracteres aleatorios con Math.random.
Java
|
andressalasmx
|
3
|
24,838
|
11 Noviembre 2014, 00:48 am
por andressalasmx
|
|