• Lunes 9 de Diciembre de 2024, 10:02

Autor Tema:  Problemas Con Allegro Y Números Aleatorios  (Leído 3782 veces)

Cesar2990

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Problemas Con Allegro Y Números Aleatorios
« en: Lunes 12 de Mayo de 2008, 10:38 »
0
Hola amigos soy nuevo en esto de Allegro tengo un problema, genero un numero aleatorio antes de iniciar allegro y todo marcha bn, pero cuando este numero entra ya con allegro iniciado el valor de esta variable cambia muchisimo y no c q pasa.

----Main----

#include <iostream>

using namespace std;

int dados(int &da);

int main(){
    int d1,d2,dadoT;
    srand (time (NULL));
    d1 = 1 + rand() % 6;
    d2 = 1 + rand() % 6;
    dadoT = d1 + d2;
    cout << d1 << endl;
    cout << d2 << endl;
    cout << dadoT << endl;
    system("pause");
    dados();
}

----Inicio de allegro IniAllegro.cpp----
#include <allegro.h>

void IniAllegro(){
    allegro_init();
    install_keyboard();
    set_color_depth(16);
    set_gfx_mode( GFX_AUTODETECT,1024,768,0,0);    
}

----Dado.cpp----
#include <iostream>
#include <cstdlib>
#include <allegro.h>

using namespace std;

//Procedimietos
int IniAllegro();
int dados();
int Movimiento(int &movJugador1);

BITMAP *dado1, *dado2, *dado3, *dado4, *dado5, *dado6, *Tablero, *buffer, *ficha1;
PALETTE paleta;
int d1, d2, dadoT;
int posX1=55;


int dados (int &da1, &da2){        
    IniAllegro();    
    dado1 = load_bitmap("dado1.bmp",paleta);
    dado2 = load_bitmap("dado2.bmp",paleta);
    dado3 = load_bitmap("dado3.bmp",paleta);
    dado4 = load_bitmap("dado4.bmp",paleta);
    dado5 = load_bitmap("dado5.bmp",paleta);
    dado6 = load_bitmap("dado6.bmp",paleta);    
    set_palette(paleta);
    Tablero=load_bitmap("Tablero.bmp",NULL);
    buffer=load_bitmap("Tablero.bmp",NULL);
    acquire_screen();
    draw_sprite(screen,Tablero,0,0);


    while (!key[KEY_SPACE]){
          draw_sprite(screen,dado1,442,339);
          draw_sprite(screen,dado2,442,339);
          draw_sprite(screen,dado3,442,339);
          draw_sprite(screen,dado4,442,339);
          draw_sprite(screen,dado5,442,339);
          draw_sprite(screen,dado6,442,339);

          draw_sprite(screen,dado1,522,339);
          draw_sprite(screen,dado2,522,339);
          draw_sprite(screen,dado3,522,339);
          draw_sprite(screen,dado4,522,339);
          draw_sprite(screen,dado5,522,339);
          draw_sprite(screen,dado6,522,339);
    }
   
    switch (da1){
           case 1:
                draw_sprite(screen,dado1,442,339);
                break;
           case 2:
                draw_sprite(screen,dado2,442,339);
                break;
           case 3:
                draw_sprite(screen,dado3,442,339);
                break;
           case 4:
                draw_sprite(screen,dado4,442,339);
                break;
           case 5:
                draw_sprite(screen,dado5,442,339);
                break;
           case 6:
                draw_sprite(screen,dado6,442,339);
    }
   
    switch (da2){
           case 1:
                draw_sprite(screen,dado1,522,339);
                break;
           case 2:
                draw_sprite(screen,dado2,522,339);
                break;
           case 3:
                draw_sprite(screen,dado3,522,339);
                break;
           case 4:
                draw_sprite(screen,dado4,522,339);
                break;
           case 5:
                draw_sprite(screen,dado5,522,339);
                break;
           case 6:
                draw_sprite(screen,dado6,522,339);
    }          
Movimiento(dadoT);
}

//-----------------------------------------------------------------------------------------------//

---Movimiento.cpp----

int Movimiento(int &movJugador1){
int mov,movi;
mov= movJugador1+movi;
movi=mov;

ficha1=load_bitmap("ficha1.pcx",NULL);
//draw_sprite(screen,ficha1,55,650);

switch (movi){
      case 1:
            draw_sprite(screen,ficha1,posX1,520);            
            textout_ex(screen,font,"HUEHUETENANGO",318,314,makecol(255,0,0),makecol(131,202,238));      
            break;
           
      case 2:            
           draw_sprite(screen,ficha1,posX1,435);
           textout_ex(screen,font,"QUETZALTENANGO",200,250,makecol(255,0,0),makecol(131,202,238));                
           break;

      case 3:
           draw_sprite(screen,ficha1,posX1,350);
           textout_ex(screen,font,"ALTA VERAPAZ",200,260,makecol(255,0,0),makecol(131,202,238));
           break;

      case 4:
           draw_sprite(screen,ficha1,posX1,265);
           textout_ex(screen,font,"AVIAGUAT",200,270,makecol(255,0,0),makecol(131,202,238));
           break;

       case 5:
           draw_sprite(screen,ficha1,posX1,180);
           textout_ex(screen,font,"INDE",150,250,makecol(255,0,0),makecol(131,202,238));
           break;

       case 6:
           draw_sprite(screen,ficha1,posX1,85);
           textout_ex(screen,font,"CARCEL",150,250,makecol(255,0,0),makecol(131,202,238));
           break;
       
       case 7:
           draw_sprite(screen,ficha1,180,85);
           textout_ex(screen,font,"QUICHE",150,250,makecol(255,0,0),makecol(131,202,238));
           break;

       case 8:
           draw_sprite(screen,ficha1,265,85);
           textout_ex(screen,font,"IZABAL",150,250,makecol(255,0,0),makecol(131,202,238));
           break;

       case 9:
           draw_sprite(screen,ficha1,350,85);
           textout_ex(screen,font,"CHIMALTENANGO",150,250,makecol(255,0,0),makecol(131,202,238));
           break;

       case 10:
           draw_sprite(screen,ficha1,350,200);
           textout_ex(screen,font,"PETEN",150,250,makecol(255,0,0),makecol(131,202,238));
           break;

       case 11:
           draw_sprite(screen,ficha1,440,200);
           textout_ex(screen,font,"EL PROGRESO",150,250,makecol(255,0,0),makecol(131,202,238));
           break;

       case 12:
           draw_sprite(screen,ficha1,525,200);
           textout_ex(screen,font,"FEGUA",150,250,makecol(255,0,0),makecol(131,202,238));          
           break;

       default:
           textout_ex(screen,font,"Chorrio si Dio jajaja",150,300,makecol(255,0,0),makecol(131,202,238));          
           break;              
    }

//dados();

while (!key[KEY_ESC]){
textout_ex(screen, font, "Presione ESC para terminar", 400, 120, makecol(255, 255, 255), -1);
}
allegro_exit();
cout << movi <<endl;
system("pause");
}

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Problemas Con Allegro Y Números Aleatorios
« Respuesta #1 en: Lunes 12 de Mayo de 2008, 17:14 »
0
Pero, ¿qué es lo raro? ¿qué es lo que esperas y que sucede? ¿imágenes?
Sugerencias:
-Organiza un poco mejor las cosas.
-Usa los tags de [ code][ /code]  del foro, algo así:
Código: Text
  1.  
  2. #include &#60;iostream&#62;
  3.  
  4. using namespace std;
  5.  
  6. int dados(int &da);
  7.  
  8. int main(){
  9. int d1,d2,dadoT;
  10. srand (time (NULL));
  11. d1 = 1 + rand() % 6;
  12. d2 = 1 + rand() % 6;
  13. dadoT = d1 + d2;
  14. cout &#60;&#60; d1 &#60;&#60; endl;
  15. cout &#60;&#60; d2 &#60;&#60; endl;
  16. cout &#60;&#60; dadoT &#60;&#60; endl;
  17. system(&#34;pause&#34;);
  18. dados();
  19. }
  20.  
  21.  
-Muestra los errores que tienes.
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

Cesar2990

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Problemas Con Allegro Y Números Aleatorios
« Respuesta #2 en: Martes 13 de Mayo de 2008, 04:22 »
0
Gracias amigo pues el error que me da es que antes de iniciar allegro mi numero aleatorio funciona, pero cuando pasa por la funcion de los dados dond solo muestro las imagenes de las 6 caras de dado como una animacion y esto parara hasta que presionen la barra espaciadora esto con un
Código: Text
  1.  
  2. while (!key[KEY_SPACE]){
  3. draw_sprite(screen,dado1,442,339);
  4. draw_sprite(screen,dado2,442,339);
  5. draw_sprite(screen,dado3,442,339);
  6. draw_sprite(screen,dado4,442,339);
  7. draw_sprite(screen,dado5,442,339);
  8. draw_sprite(screen,dado6,442,339);
  9.  
  10. draw_sprite(screen,dado1,522,339);
  11. draw_sprite(screen,dado2,522,339);
  12. draw_sprite(screen,dado3,522,339);
  13. draw_sprite(screen,dado4,522,339);
  14. draw_sprite(screen,dado5,522,339);
  15. draw_sprite(screen,dado6,522,339);
  16. }
  17.  
  18.  
despues le mando los valores a la funcion movimiento que mostrara una imagen en cierto lugar de la pantalla quiero hacer un monopoly pero a la hora de ver el valor de la variable sale con un valor por ejemplo 65895 y por eso no me imprime nada de la ficha espero que algien me ayude

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Problemas Con Allegro Y Números Aleatorios
« Respuesta #3 en: Martes 13 de Mayo de 2008, 20:31 »
0
Disculpame pero no entiendo muy bien tu código, lo único que veo "extraño" y uso las comillas porque a lo mejor está bien, es que por ejemplo aquí:
Código: Text
  1.  
  2. int main(){
  3. int d1,d2,dadoT;
  4. srand (time (NULL));
  5. d1 = 1 + rand() % 6;
  6. d2 = 1 + rand() % 6;
  7. dadoT = d1 + d2;
  8. cout &#60;&#60; d1 &#60;&#60; endl;
  9. cout &#60;&#60; d2 &#60;&#60; endl;
  10. cout &#60;&#60; dadoT &#60;&#60; endl;
  11. system(&#34;pause&#34;);
  12. dados(); // &#60;---- aquí
  13. }
  14.  
  15.  

no estás enviando ningún parámetro a la función dados... ¿no tiene nada que ver?
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

Cesar2990

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Problemas Con Allegro Y Números Aleatorios
« Respuesta #4 en: Martes 13 de Mayo de 2008, 22:24 »
0
Bueno gracias por tu ayuda, mejor te agrego al msn para hablar mejor gracias :D

ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Problemas Con Allegro Y Números Aleatorios
« Respuesta #5 en: Martes 13 de Mayo de 2008, 22:30 »
0
Como quieras  :)
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.