elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
11 Octubre 2008, 23:28  



  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / numeros aleatorios en: 16 Mayo 2008, 20:48


hey hola necesito generar numeros aleatorios, pero no tan grandes por hay de uno a cuatro, esto es para un proyecto que tengo, que consiste enn hacer un pacman en c  con elcompilador dev c++ y la libreria allegro.

buena al grano, primero nesecito generar un numero de 1 a 2, esto es para escoger la direccion, la voy a hacer aplicando el siguiente sistema: si es 1 se mueve verticalment, y si es 2 se mueve horizontalmente.

ahora necesito que se muevan, para esto necesito hacer otra funcion random, pero esta si no se como implementarla, por que la gracia seria que se pudiera mover horizontalmente cierta distancia, y que no solo avance yna posicion y retoceda otra.

en fin lo que quiero hacer es un random pra escoger el movimiento ya sea vertical ó horizontal y la otra para para generar la cantidad de distancia.


huy se me estaba alvuidando lo mas importante:
lo que estopy haciendo es para unas coordenadas cierto, pero esas coordenadas es para aplicarlas a una matriz identica con la que hice el movimiento de pacman.


antemano muchas gracias y se aceptan consejos de como hacerlo y que no pase por alto que no se como utilizar la random.

gracias...
 ;D ;D ;D ;D
2  Programación / Programación C/C++ / funcion ramdon pra imagenes en: 15 Mayo 2008, 04:50
hola como estan, hey serian tan amable me podrian ayudar con un ejemplo de como utilizaar la funcion ramdom.


es que es para un proyecto que tengo, es realizar un pacman, y quiero hacer que los fantasmas se muevan con una funcion random, es que en internet no hay ejemplos que me sirvan como guia para lo que tengo pensado hacer, no espero tampoco que me hagan el codigo si no que esta funcion no tengo idea de como utilizarla, es mas me comentaron que pra que los fantasmas aparecieran dentro de forma aleatoria utilizara la hora del saitema como semilla, pero igual como no se como se utiliza no he podido hacer nada.


posdata...
se me olvidaba estoy compilando en dev c++ y la libreria allegro.h, esto lo digo por que hay librerias que no son compatibles con allegro.


garcias...
 :rolleyes: :rolleyes: :rolleyes: :o :o :D :D :D
3  Programación / Programación C/C++ / pausar o hacer algo para detener una ejecucion en: 14 Mayo 2008, 09:11
hola hey me gustaria saber como hago para pausar una ejecucion sin que me aparezca ningun mesaje en pantalla como lo es el system("pause") y que sea compatible con la libreria allegro, puesto que conio.h no se puede trabajar con allegra al tiempo y menos en Dec - C++ y no puedo usar otro compilador....


gracias...



 ;D ;D ;D ;D ;D :-* :-* :-* :-* :-*
4  Programación / Programación C/C++ / problema de movimiento en: 14 Mayo 2008, 01:29


hola  tengo un gran problema con el siguiente codigo:

int i = 0;

while(!key[KEY_ESC])
{
     if(key[KEY_UP])
     {
         
           while (i <= 1)
           {
                 
                //if (mover[6][y]==0)
               
                 draw_sprite(screen, nogalleta, (x)*MAX, (y)*MAX);
                 draw_sprite(screen, pacman, (x)*MAX, (y-1)*MAX);
                 y = y -1 ;
                 
                 
                 i = 0 ;
                 i = i + 1 ;
                 //getchar();
                 system ("pause");
                 break;
                   
             }   
     }


 if(key[KEY_DOWN])
    {   
            while (i <= 1)
           {
               
                 draw_sprite(screen, nogalleta, (x)*MAX, (y)*MAX);
                 draw_sprite(screen, pacman, (x)*MAX, (y+1)*MAX);
                 y = y +1 ;
                 i = 0 ;
                 i = i + 1 ;
                 //getchar();
                 system ("pause");
                 break;
                   
             }
    }

if(key[KEY_RIGHT])
{
             while (i <= 1)
           {
               
                 draw_sprite(screen, nogalleta, (x)*MAX, (y)*MAX);
                 draw_sprite(screen, pacman, (x+1)*MAX, (y)*MAX);
                 x = x + 1 ;
                 i = 0 ;
                 i = i + 1 ;
                 //getchar();
                 system ("pause");
                 break;
                   
             }   
               
}

if(key[KEY_LEFT])
{
                 while (i <= 1)
           {
               
                 draw_sprite(screen, nogalleta, (x)*MAX, (y)*MAX);
                 draw_sprite(screen, pacman, (x-1)*MAX, (y)*MAX);
                 x = x - 1 ;
                 i = 0 ;
                 i = i + 1 ;
                 //getchar();
                 system ("pause");
                 break;
                   
             }

}

}

el proble consiste en que tengo una matriz y tengo que hacer que se mueva una imagen por coordenadas que varian dependiendo que se ingrese por el teclado

por ejemplo si el usuario ingresa la tecla arriba la coordenada en y disminuye en uno
o si ingresa la tecla derecha la coordena en x disminuye en uno ...etc...

el problema es que como esta echo en allegro.h cuando yo le ingreso una tecla no se por que se muve tan deliveradamente, y entonces implemente el codigo anterior que limita el movimiento en uno por uno, pero no quiero que aparezca la ventana de systen("pause"), quisiera saber si hay otra forma de realizar este tipo de movimiento con o sin la libreria allegro pero que a la hora de compilar sea compatible el codigo con la libreria.

 ;D ;D ;D ;D ;D ;D  gracias :o :o :o :o :o :o :o :rolleyes: :rolleyes: :rolleyes: :rolleyes:
5  Programación / Programación C/C++ / movimiento pacman en: 13 Mayo 2008, 07:54
hola...

hey creo que me malinterpretaron en mi duda anterior, yo no quiero que me hagan la tarea lo que quiero es que me colaboren, una guia para poder hacer el movimiento del pacman...

ahora mi duda que les planteaba anterior mente era que no he podido hacer el pacman se un solo espacio por la matriz, lo que pasa es que se mueve deliveradamente y no se por que y yo creo que es por que no estoy usando correctamente la libreria, me gustaria que me ayudaran encontrando el error de este codigo para que el muñeco sol se mueva una posicion y no deje nada detras de el...

aqui dejo el codigo que tengo hasta ahora..


las referencias de las imagenes son las siguientes si quieren compilar el codigo:
voy a dar el nombre del archivo segido de su dimencion y formato:

galletaG es de 8x8.bmp
galletaP es de 7x9.bmp
nogalleta es de 14x14.bmp
pared es de 7x9.bmp
pacman es de 14x14.bmp

--------------------------------------------------------------------------------------------------

#include <allegro.h>
#include<stdio.h>



void arriba(int a[31][28], int b, int *c);
void derecha(int a[31][28], int *b, int c);
void abajo(int a[31][28] , int b , int *c);
void izquierda(int a[31][28], int *b, int c);


int main()
{
    int MAX = 14;   //cantidad de bitmaps de espaci entre imagen e imagen
     int y = 23 , x = 13 ;
     
     //initialize Allegro
 
 allegro_init();
 set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
 install_keyboard();
 BITMAP *galletaP;
 BITMAP *galletaG;
 BITMAP *nogalleta;
 BITMAP *pared;
 BITMAP *pacman;




 int fil,col;
 
 
 //tablero de las galletas
 //los 5's son espacios donde iran los fantasmas mas adelante
    int galletas[31][28]={
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,
2,0,2,2,2,2,0,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,2,2,2,2,0,2,
2,4,2,2,2,2,0,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,2,2,2,2,4,2,
2,0,2,2,2,2,0,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,2,2,2,2,0,2,
2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
2,0,2,2,2,2,0,2,2,0,2,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,0,2,
2,0,2,2,2,2,0,2,2,0,2,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,0,2,
2,0,0,0,0,0,0,2,2,0,0,0,0,2,2,0,0,0,0,2,2,0,0,0,0,0,0,2,
2,2,2,2,2,2,0,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,0,0,0,0,0,0,0,0,0,0,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,0,2,2,5,5,5,5,2,2,0,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,0,2,5,5,5,5,5,5,2,0,2,2,0,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,2,5,5,5,5,5,5,2,0,0,0,0,0,0,0,0,0,0,
2,2,2,2,2,2,0,2,2,0,2,5,5,5,5,5,5,2,0,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,0,0,0,0,0,0,0,0,0,0,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,
2,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,
2,0,2,2,2,2,0,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,2,2,2,2,0,2,
2,0,2,2,2,2,0,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,2,2,2,2,0,2,
2,4,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,4,2,
2,2,2,0,2,2,0,2,2,0,2,2,2,2,2,2,2,2,0,2,2,0,2,2,0,2,2,2,
2,2,2,0,2,2,0,2,2,0,2,2,2,2,2,2,2,2,0,2,2,0,2,2,0,2,2,2,
2,0,0,0,0,0,0,2,2,0,0,0,0,2,2,0,0,0,0,2,2,0,0,0,0,0,0,2,
2,0,2,2,2,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,2,2,2,2,0,2,
2,0,2,2,2,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,2,2,2,2,0,2,
2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,};

 //tablero de las paredes
 
int paredes[31][28]={
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
2,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,
2,0,2,2,2,2,0,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,2,2,2,2,0,2,
2,0,2,2,2,2,0,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,2,2,2,2,0,2,
2,0,2,2,2,2,0,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,2,2,2,2,0,2,
2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
2,0,2,2,2,2,0,2,2,0,2,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,0,2,
2,0,2,2,2,2,0,2,2,0,2,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,0,2,
2,0,0,0,0,0,0,2,2,0,0,0,0,2,2,0,0,0,0,2,2,0,0,0,0,0,0,2,
2,2,2,2,2,2,0,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,0,0,0,0,0,0,0,0,0,0,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,0,2,2,0,0,0,0,2,2,0,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,0,2,0,0,0,0,0,0,2,0,2,2,0,2,2,2,2,2,2,
0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,
2,2,2,2,2,2,0,2,2,0,2,0,0,0,0,0,0,2,0,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,0,0,0,0,0,0,0,0,0,0,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,
2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,
2,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,
2,0,2,2,2,2,0,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,2,2,2,2,0,2,
2,0,2,2,2,2,0,2,2,2,2,2,0,2,2,0,2,2,2,2,2,0,2,2,2,2,0,2,
2,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,2,
2,2,2,0,2,2,0,2,2,0,2,2,2,2,2,2,2,2,0,2,2,0,2,2,0,2,2,2,
2,2,2,0,2,2,0,2,2,0,2,2,2,2,2,2,2,2,0,2,2,0,2,2,0,2,2,2,
2,0,0,0,0,0,0,2,2,0,0,0,0,2,2,0,0,0,0,2,2,0,0,0,0,0,0,2,
2,0,2,2,2,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,2,2,2,2,0,2,
2,0,2,2,2,2,2,2,2,2,2,2,0,2,2,0,2,2,2,2,2,2,2,2,2,2,0,2,
2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,};





//cargamos el bitmap

  galletaP = load_bitmap("galletaP.bmp", NULL);
  nogalleta = load_bitmap("nogalleta.bmp", NULL);
  pared = load_bitmap("pared.bmp", NULL);
  pacman=load_bitmap("pacman.bmp",NULL);
  galletaG=load_bitmap("galletaG.bmp",NULL);



 
//draw the sprite

for ( fil=0 ; fil<31;fil++)
{
   
    for ( col=0 ; col<28;col++)
    {
       
       //dibujamos las galletas
       
       
        if(galletas[fil][col]==0){
       
        draw_sprite(screen, galletaP, col*MAX, fil*MAX);
       
        }
        if(galletas[fil][col]==4){
       
        draw_sprite(screen, galletaG, col*MAX, fil*MAX);
       
        }
       
       
        //dibujamos las paredes
       
       
        if(paredes[fil][col]==2)
        {       
          draw_sprite(screen, pared, col*MAX, fil*MAX);
       
        }       
    }     
}


draw_sprite(screen, nogalleta, x*MAX, y*MAX);
draw_sprite(screen, pacman,x*MAX , y*MAX);
galletas
  • [y]=3;

//coordenadas de x y y de paman en la matriz
 
 

while(!key[KEY_ESC])
 
 {
     if(key[KEY_UP])
{
                if (galletas
  • [y-1]==0 )
                {
                    arriba(galletas, x,&y);
                    draw_sprite(screen, nogalleta, x*MAX, (y+1)*MAX);
                    draw_sprite(screen, pacman, (x)*MAX, (y)*MAX);
                             
                }               
}

 if(key[KEY_DOWN])
{
                if (galletas
  • [y+1]==0 && galletas
  • [y+1]!= 2)
                {
                    abajo(galletas, x,&y);
                    draw_sprite(screen, nogalleta, x*MAX, (y-1)*MAX);
                    draw_sprite(screen, pacman, (x)*MAX, (y)*MAX);
                             
                }           
                       
}

if(key[KEY_RIGHT])
{
                 if (galletas [x+1][y]==0 && galletas [x+1][y]!= 2 )
                {
                    derecha(galletas, &x,y);
                    draw_sprite(screen, nogalleta, (x-1)*MAX, y*MAX);
                    draw_sprite(screen, pacman, (x)*MAX, (y)*MAX);
                             
                }           
}

if(key[KEY_LEFT])
{
                 if (galletas [x-1][y]==0 && galletas [x-1][y]!=2 )
                {
                    izquierda (galletas, &x,y);
                    draw_sprite(screen, nogalleta, (x+1)*MAX, y*MAX);
                    draw_sprite(screen, pacman, (x)*MAX, (y)*MAX);
                             
                }               
}
}



 
allegro_exit();
return 0;
destroy_bitmap(pacman);
destroy_bitmap(galletaP);
}
END_OF_MAIN();



void arriba(int a[31][28] , int b , int *c)
{
     int i, j;
     
     i = b ;
     j = *c ;
     
     if ( a[j-1] == 0 )
     {
          j = j-1;
     }
     
     *c = j;
     
}



void abajo(int a[31][28] , int b , int *c)
{
     int i, j;
     
     i = b ;
     j = *c ;
     
     if ( a[j+1] == 0 )
     {
          j = j+1;
     }
     
     *c = j;
     
}


void derecha(int a[31][28], int *b, int c)
{
     int i, j;
     
     i = *b ;
     j = c ;
     
     if ( a[i+1][j] == 0 )
     {
          i = i+1;
     }
     
     *b = i;
     
}

void izquierda(int a[31][28], int *b, int c)
{
     int i, j;
     
     i = *b ;
     j = c ;
     
     if ( a[i-1][j] == 0 )
     {
          i = i-1;
     }
     
     *b = i;
   
}



espero que no me tomen a mal esta ves emtendiendo que publico esto es para que me lo devuelvan totalmente resuelto, lo que quiero es realizarlo yo mismo, pero esta libreria personalmente es bastante complica por ser un poco novato en este lenguaje de programacion.....


espero que me ayuden....
gracias..... :D :D :D :D :D
6  Programación / Programación C/C++ / fantasmas de pacman en: 13 Mayo 2008, 02:25
hola como estan soy nuevo en este foro y espero que me puedan colaborar en lo que tengo demasiadas dudas:


1 tengo que realizar un proyecto de programacion que consiste en un pacman y debe realizarse con los siguientes criterios:
1)  debe utilizar solo lo de programacion basica
2)  debe realizarse en el compilador dev - c++
3) puedo utilizar cualquier libreria grafica..

bueno he hestado realizando algo del proyecto, lo he empezado ha  hacer con la libreria grafica allegro.h, pero ya empeze altener problemas, tengo dos matices una que va ser el tablero que esta compuesta de 1's y 0's y otra que va ser las galletas del tablero, mi pregunta es como hacer para que los fantsmas se muevan buscando a pacman y que cundo pacman se coma una galleta grande los fantasmas se puedan comer y ademas le ullan a pacman.

por favor cualquier colaboracion me sirve demasiado gracias......

 ;D ;D ;D ;D ;D ;D :D :D :D :D :-[ :-[ :-[ :-[ :-[ :-[

mi correo es Elkintorres88@hotmail.com   para que se comuniquen con migo para que me puedan hacer el favor de colaborarme....
7  Programación / Programación C/C++ / Re: imagenes con Allegro.h en: 12 Mayo 2008, 15:36
hey gracias pero me gustaria imprimir como una especie de linea con coordenadas, por que me di cuenta que para imprimir con coordenadas imagenes me tocaria hacer varias imagenes, me gustari hacerlo dibujando lineas por medio de la libreria, no imprimiendo imagenes....

hey y otra duda me podrian dar una esecie de guia para realizar el movomiento de los fantasmas para que busquen a pacman....


gracias espero una pronta respuesta....
8  Programación / Programación C/C++ / imagenes con Allegro.h en: 09 Mayo 2008, 20:10
hola como estan soy nuevo en este foro y espero que me puedan colaborar en lo que tengo demasiadas dudas:


1 tengo que realizar un proyecto de programacion que consiste en un pacman y debe realizarse con los siguientes criterios:
1)  debe utilizar solo lo de programacion basica
2)  debe realizarse en el compilador dev - c++
3) puedo utilizar cualquier libreria grafica..

bueno he hestado realizando algo del proyecto, lo he empezado ha  hacer con la libreria grafica allegro.h, pero ya empeze altener problemas, tengo dos matices una que va ser el tablero que esta compuesta de 1's y 0's y otra que va ser las galletas del tablero, pero mi problemas es que quiero cargar una inagen para los 1's y otra para los 0's y nose como realizar esto...  sim embargo ya puede imprimir la matriz con allegro...

por favor cualquier colaboracion me sirve demasiado gracias......


mi correo es Elkintorres88@hotmail.com   para que se comuniquen con migo para que me puedan hacer el favor de colaborarme.... ;) ;) ;D ;D
Páginas: [1]






Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats