elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: problema con el game en dev c++ en: 21 Marzo 2014, 09:00 am
 :o :o Muchas gracias!! has salvado mi alma de satanás >_<'
muchas gracias y perdona las molestias.... >-<' :-[


2  Programación / Programación C/C++ / Re: problema con el game en dev c++ en: 21 Marzo 2014, 01:19 am
intente modificar el programa me explicaban, pero no pude

Código
  1. char nave[][]=
  2.                   {
  3.                     { " ***   " },  
  4.                     { " ** *  " },
  5.                     { " ***   " }
  6.                   };

pero no me sale lo inicie todo de nuevo pero de ahi me marca error, para ser sincera, no se usar aun la matriz :s,  tal vez por eso no me sale...

yo se que el mio que hize es muy repetido o.ó y complicado, que hasta yo me en redo, pero de que funciona si, pero aqui les dejo esto:



aquí es cuando se termina el juego y se para ahi los anroides o.o esa es mi duda, como hacer para que no se quede ahí



eso me sale con mi programa que tengo yo

Código
  1. #include <windows.h>
  2. #include <iostream>
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #include <stdlib.h>
  6.  
  7. #define ARR 72
  8. #define ABA 80
  9. #define IZQ 75
  10. #define DER 77
  11.  
  12.  
  13. char nave_l1[]={' ','*','*', ' ',' ',' ',' ',0};  // dibujo de la nave      
  14. char nave_l2[]={' ','*','*', '*',' ',' ',' ',0};
  15. char nave_l3[]={' ','*','*', ' ',' ',' ',' ',0};
  16.  
  17. char explosion_l1[]={' ',' ','*','*',' ',' ',' ',0};      
  18. char explosion_l2[]={' ','*','*','*','*',' ',' ',0};   //explosion de la nave
  19. char explosion_l3[]={' ',' ','*','*',' ',' ',' ',0};
  20.  
  21. char explosion_r1[]={'*',' ','*','*',' ','*',' ',0};      
  22. char explosion_r2[]={' ','*','*','*','*',' ',' ',0};  //la segunda explosion
  23. char explosion_r3[]={'*',' ','*','*',' ','*',' ',0};
  24.  
  25. char borrar_nave[]={' ',' ',' ',' ',' ',' ',' ',0}; // cuando se borra
  26.  
  27. //numero de vidas
  28. int Num_vidas = 3;
  29. int Corazones = 3;
  30. //cordenandas de la nave
  31. int ix = 1;
  32. int iy = 19;
  33.  
  34. //cordenandas de los asteroides o diamantes
  35. int y = 8, x = 45;
  36. int yy = 18 , xx = 71;
  37. int xl = 58 , yl = 6;
  38. int xr = 70, yr = 9;
  39.  
  40. int i,v;
  41.  
  42. //para cambiar de nivel del juego
  43. int repeticion = 0, nivel =1;
  44. bool condicion = false;
  45.  
  46. //aplicacion de libreria de windows
  47. void gotoxy(int x, int y)
  48. {
  49.     HANDLE hCon;
  50.     COORD dwPos;
  51.  
  52.     dwPos.X = x;
  53.     dwPos.Y = y;
  54.  
  55.     hCon = GetStdHandle(STD_OUTPUT_HANDLE);
  56.     SetConsoleCursorPosition(hCon,dwPos);
  57.  
  58. }    
  59. //nombrar las vidas
  60. void vidas(int vi)
  61. {
  62.     gotoxy(2,1); printf("VIDAS %d",vi);
  63. }
  64.  
  65. void Barra_salud(int n)
  66. {
  67.     gotoxy(72,1);printf(" ");
  68.     gotoxy(73,1);printf(" ");
  69.     gotoxy(74,1);printf(" ");
  70.  
  71.     for(v = 0 ; v < n ; v++)
  72.     {
  73.       gotoxy(72+v,1);
  74.       printf("%c",3);
  75.      }    
  76. }
  77. //explosion de la nave al ser atacado por los asteroides...
  78. void Explosion(void)
  79. {
  80.     gotoxy(ix,iy);   puts(explosion_l1);
  81.     gotoxy(ix,iy+1); puts(explosion_l2);
  82.     gotoxy(ix,iy+2); puts(explosion_l3);
  83.  
  84.     Sleep(380);
  85.  
  86.     gotoxy(ix,iy);   puts(explosion_r1);
  87.     gotoxy(ix,iy+1); puts(explosion_r2);
  88.     gotoxy(ix,iy+2); puts(explosion_r3);
  89.  
  90.     Sleep(380);
  91.  
  92.     gotoxy(ix,iy);   puts(nave_l1);
  93.     gotoxy(ix,iy+1); puts(nave_l2);
  94.     gotoxy(ix,iy+2); puts(nave_l3);
  95.  
  96. }    
  97. //el inicio del juego con los asteroides
  98. void jugar(void)
  99. {
  100.     //rutina de los diamantes
  101.  
  102.      gotoxy(x,y);   printf("%c",4);
  103.      gotoxy(xx,yy); printf("%c",4);
  104.      gotoxy(xl,yl); printf("%c",4);
  105.      gotoxy(xr,yr); printf("%c",4);
  106.  
  107.      Sleep(90);
  108.  
  109.      gotoxy(x,y);   printf(" ");
  110.      gotoxy(xx,yy); printf(" ");
  111.      gotoxy(x1,yl); printf(" ");
  112.      gotoxy(xr,yr); printf(" ");
  113.  
  114.      //%90 es el tiempo que se usa...
  115.      if (y > 20)
  116.      {
  117.            y = 6;
  118.            x = (rand() % 90) + 6;
  119.  
  120.            //la condicion de "cambio de nivel de game"            
  121.            if( x== 6)
  122.            condicion =false;
  123.  
  124.      }
  125.      if(yy >20)
  126.      {
  127.            yy = 6;
  128.            xx = (rand() % 90) + 6;
  129.  
  130.      }
  131.      if(y1 >20)
  132.      {
  133.            yl = 6;
  134.            xl = (rand() % 90) + 6;
  135.  
  136.      }
  137.      if(yr >20)
  138.      {
  139.            yr = 6;
  140.            xr = (rand() % 90) + 6;
  141.  
  142.            }
  143.  
  144.  
  145.      //rutina de mover la nave
  146.      if (kbhit())
  147.      {
  148.                 unsigned char tecla = getch();
  149.  
  150.                 switch (tecla)
  151.                 {        
  152.                        case ARR:
  153.  
  154.                             if(iy > 4)
  155.                             {
  156.                                  gotoxy(ix,iy);puts(borrar_nave);
  157.                                  gotoxy(ix,iy+1);puts(borrar_nave);
  158.                                  gotoxy(ix,iy+2);puts(borrar_nave);
  159.  
  160.                                  iy -=2;//iy = iy -2;
  161.  
  162.                                  gotoxy(ix,iy);puts(nave_l1);
  163.                                  gotoxy(ix,iy+1);puts(nave_l2);
  164.                                  gotoxy(ix,iy+2);puts(nave_l3);
  165.  
  166.                              }
  167.                             break;
  168.  
  169.                       case ABA:
  170.  
  171.                            if( iy <20)
  172.                            {
  173.                                  gotoxy(ix,iy);puts(borrar_nave);
  174.                                  gotoxy(ix,iy+1);puts(borrar_nave);
  175.                                  gotoxy(ix,iy+2);puts(borrar_nave);
  176.  
  177.                                  iy +=2;//iy = iy +2;
  178.  
  179.                                  gotoxy(ix,iy);puts(nave_l1);
  180.                                  gotoxy(ix,iy+1);puts(nave_l2);
  181.                                  gotoxy(ix,iy+2);puts(nave_l3);
  182.  
  183.                            }
  184.                            break;
  185.  
  186.                         case IZQ:
  187.  
  188.                             if(ix > 4)
  189.                             {
  190.                                  gotoxy(ix,iy);puts(borrar_nave);
  191.                                  gotoxy(ix,iy+1);puts(borrar_nave);
  192.                                  gotoxy(ix,iy+2);puts(borrar_nave);
  193.  
  194.                                  ix -=2;//ix = ix -2;
  195.  
  196.                                  gotoxy(ix,iy);puts(nave_l1);
  197.                                  gotoxy(ix,iy+1);puts(nave_l2);
  198.                                  gotoxy(ix,iy+2);puts(nave_l3);
  199.  
  200.                              }
  201.                             break;
  202.  
  203.                          case DER:
  204.  
  205.                             if(ix <20)
  206.                             {
  207.                                  gotoxy(ix,iy);puts(borrar_nave);
  208.                                  gotoxy(ix,iy+1);puts(borrar_nave);
  209.                                  gotoxy(ix,iy+2);puts(borrar_nave);
  210.  
  211.                                  ix +=2;//ix = ix +2;
  212.  
  213.                                  gotoxy(ix,iy);puts(nave_l1);
  214.                                  gotoxy(ix,iy+1);puts(nave_l2);
  215.                                  gotoxy(ix,iy+2);puts(nave_l3);
  216.  
  217.                              }
  218.                             break;          
  219.                 } //fin del switch
  220.  
  221.      }// Fin if
  222.  
  223.      //rutina para golpes de asteroides  
  224.      if(( x > ix && x<ix + 6 && y == iy-1)|| (x > ix && xx<ix + 6 && yy == iy-1)
  225.          || (xl > ix && xx < ix + 6 && yl == iy-1)|| (xr > ix && xr<ix  + 6 && yr == iy-1))
  226.          {
  227.                 //donde se va disminuyendo las vidas
  228.                 Corazones --;
  229.                 Barra_salud(Corazones);
  230.  
  231.          }
  232.  
  233.  
  234.      gotoxy(ix,iy);puts(nave_l1);      
  235.      gotoxy(ix,iy+1);puts(nave_l2);
  236.      gotoxy(ix,iy+2);puts(nave_l3);
  237.  
  238.      //numero de vidas restantes
  239.      if(!Corazones)
  240.      {
  241.                     Num_vidas--;
  242.                     vidas(Num_vidas);
  243.                     Explosion();
  244.                     Corazones =3;
  245.  
  246.                     Barra_salud(Corazones);
  247.  
  248.      }
  249.  
  250.      //rutina para cambio de nivel
  251.  
  252.      if(!condicion)
  253.      {
  254.        repeticion --;
  255.        //condicionc = true;
  256.      }
  257.      if(repeticion == 4)
  258.      {
  259.          nivel++;
  260.          gotoxy(35,1); printf("NIVEL %i",nivel);                
  261.  
  262.          gotoxy(ix,iy); puts(borrar_nave);      
  263.          gotoxy(ix,iy); puts(borrar_nave);  
  264.          gotoxy(ix,iy); puts(borrar_nave);  
  265.  
  266.          iy -= 2; //iy = iy - 2;
  267.  
  268.          gotoxy(ix,iy); puts(nave_l1);      
  269.          gotoxy(ix,iy); puts(nave_l2);  
  270.          gotoxy(ix,iy); puts(nave_l3);
  271.  
  272.          repeticion = 0;
  273.  
  274.  
  275.      }
  276.      //inicio de los asteroides de derecha a izquieda
  277.      x--;
  278.      xx--;
  279.      xl--;
  280.      xr--;
  281.  
  282. }
  283.  
  284. int main ()
  285. {
  286.    vidas(Num_vidas);
  287.    Barra_salud(Corazones);
  288.    //cambio de nivel
  289.    gotoxy(35,1); printf("NIVEL %i",nivel);  
  290.  
  291.    gotoxy(ix,iy);puts(nave_l1);
  292.    gotoxy(ix,iy+1);puts(nave_l2);
  293.    gotoxy(ix,iy+2);puts(nave_l3);
  294.  
  295.  
  296.    //ciclo donde al llegar al 6 se termina el juego
  297.    while(Num_vidas > 0 && nivel <= 5 )
  298.         jugar();
  299.  
  300.  
  301.     gotoxy(22,16); printf("Game Over");
  302.     //tiempo lo que dura el juego
  303.     Sleep(120);  
  304.  
  305.    getch();
  306.    return 0;
  307.  
  308. }

solucione el problema de la nave que se duplicaba, pero ahora no cambia de nivel como muestra la imagen 2 y esos son mis unicos problemas que no llego a solucionar... 
3  Programación / Programación C/C++ / Re: problema con el game en dev c++ en: 20 Marzo 2014, 21:39 pm

//aqui segun es cuando muestra las vidas de la ave  en la parte de arriba

void vidas(int vi)
{
     gotoxy(2,1); printf("VIDAS %d",vi);
}

void Barra_salud(int n)
{
     gotoxy(72,1);printf(" ");
     gotoxy(73,1);printf(" ");
     gotoxy(74,1);printf(" ");
     
     for(v = 0 ; v < n ; v++)
     {
       gotoxy(72+v,1);
       printf("%c",3);
      }   
}



pero mi problema es cuando los asteroides o"diamantes toca la parte izquierda se queda ahí y la nave o ave se duplica 
:(no se como colocar una imagen para el ejemplo):
4  Programación / Programación C/C++ / problema con el game en dev c++ en: 20 Marzo 2014, 10:24 am
tengo este programa  c++, pero a la hora de ejecutar la parte izquierda se queda atorado los "diamantes" ya busque en ciclo y modificando y no encuentro la solución..., tambien busque como usar la tecla spce en ascci para quitar  opción de arriba y abajo, seria de gran ayuda si me pudieran ayudar a resolver y decir cual es mi error... !!  :-( :-\ :(




#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

#define ARR 72
#define ABA 80
#define IZQ 75
#define DER 77


char ave_l1[]={' ','*','*', '*',' ',' ',' ',0};  // dibujo de la nave      
char ave_l2[]={' ','*','*', ' ','*',' ',' ',0};
char ave_l3[]={' ','*','*', '*',' ',' ',' ',0};

char explocion_l1[]={' ',' ','*','*',' ',' ',' ',0};      
char explocion_l2[]={' ','*','*','*','*',' ',' ',0};   //explocion de la nave
char explocion_l3[]={' ',' ','*','*',' ',' ',' ',0};

char explocion_r1[]={'*',' ','*','*',' ','*',' ',0};      
char explocion_r2[]={' ','*','*','*','*',' ',' ',0};  //la segunda explocion
char explocion_r3[]={'*',' ','*','*',' ','*',' ',0};

char borrar_ave[]={' ',' ',' ',' ',' ',' ',' ',0}; // cuando se borra

int Num_vidas = 3;
int Corazones = 3;
int ix = 1;
int iy = 19;

int y = 8, x = 12;
int yy = 70 , xx = 1;
int x1 = 58 , y1 = 6;
int x2 = 17, y2 = 9;

int i,v;

/*para cambiar de nivel*/
int repeticion = 0, nivel =1;
bool condicion = false;

void gotoxy(int x, int y)
{
     HANDLE hCon;
     COORD dwPos;
    
     dwPos.X = x;
     dwPos.Y = y;
    
     hCon = GetStdHandle(STD_OUTPUT_HANDLE);
     SetConsoleCursorPosition(hCon,dwPos);
    
}    


void vidas(int vi)
{
     gotoxy(2,1); printf("VIDAS %d",vi);
}

void Barra_salud(int n)
{
     gotoxy(72,1);printf(" ");
     gotoxy(73,1);printf(" ");
     gotoxy(74,1);printf(" ");
    
     for(v = 0 ; v < n ; v++)
     {
       gotoxy(72+v,1);
       printf("%c",3);
      }    
}

void Explocion(void)
{
     gotoxy(ix,iy);   puts(explocion_l1);
     gotoxy(ix,iy+1); puts(explocion_l2);
     gotoxy(ix,iy+2); puts(explocion_l3);
    
     Sleep(380);
    
     gotoxy(ix,iy);   puts(explocion_r1);
     gotoxy(ix,iy+1); puts(explocion_r2);
     gotoxy(ix,iy+2); puts(explocion_r3);
    
     Sleep(380);
    
     gotoxy(ix,iy);   puts(ave_l1);
     gotoxy(ix,iy+1); puts(ave_l2);
     gotoxy(ix,iy+2); puts(ave_l3);
    
}    

void jugar(void)
{
     //rutina de los diamantes
    
      gotoxy(x,y);   printf("%c",4);
      gotoxy(xx,yy); printf("%c",4);
      gotoxy(x1,y1); printf("%c",4);
      gotoxy(x2,y2); printf("%c",4);
    
      Sleep(80);
      
      gotoxy(x,y);   printf(" ");
      gotoxy(xx,yy); printf(" ");
      gotoxy(x1,y1); printf(" ");
      gotoxy(x2,y2); printf(" ");
      
      if (x > 20)
      {
            x = 2;
            y = (rand() % 80) + 6;
            
            if( x== 2);
            condicion =false;
            
      }
      if(xx >20)
      {
            xx = 2;
            yy = (rand() % 90) + 6;
            
      }
      if(x1 >20)
      {
            x1 = 2;
            y1 = (rand() % 90) + 6;
            
      }
      if(x2 >20)
      {
            x2 = 2;
            y2 = (rand() % 90) + 6;
            
            }
      
      
      //rutina de mover la ave
      if (kbhit())
      {
                 unsigned char tecla = getch();
                
                 switch (tecla)
                 {        
                        case ARR:
                            
                             if(iy > 4)
                             {
                                  gotoxy(ix,iy);puts(borrar_ave);
                                  gotoxy(ix,iy+1);puts(borrar_ave);
                                  gotoxy(ix,iy+2);puts(borrar_ave);
                                  
                                  iy -=2;//iy = iy -2;
                                  
                                  gotoxy(ix,iy);puts(ave_l1);
                                  gotoxy(ix,iy+1);puts(ave_l2);
                                  gotoxy(ix,iy+2);puts(ave_l3);
                                  
                              }
                             break;
                            
                       case ABA:
                            
                            if( iy <70)
                            {
                                  gotoxy(ix,iy);puts(borrar_ave);
                                  gotoxy(ix,iy+1);puts(borrar_ave);
                                  gotoxy(ix,iy+2);puts(borrar_ave);
                                  
                                  iy +=2;//iy = iy +2;
                                  
                                  gotoxy(ix,iy);puts(ave_l1);
                                  gotoxy(ix,iy+1);puts(ave_l2);
                                  gotoxy(ix,iy+2);puts(ave_l3);
                                  
                            }
                            break;
                                
                         case IZQ:
                            
                             if(ix > 4)
                             {
                                  gotoxy(ix,iy);puts(borrar_ave);
                                  gotoxy(ix,iy+1);puts(borrar_ave);
                                  gotoxy(ix,iy+2);puts(borrar_ave);
                                  
                                  ix -=2;//iy = iy -2;
                                  
                                  gotoxy(ix,iy);puts(ave_l1);
                                  gotoxy(ix,iy+1);puts(ave_l2);
                                  gotoxy(ix,iy+2);puts(ave_l3);
                                  
                              }
                             break;
                          
                          case DER:
                            
                             if(ix <70)
                             {
                                  gotoxy(ix,iy);puts(borrar_ave);
                                  gotoxy(ix,iy+1);puts(borrar_ave);
                                  gotoxy(ix,iy+2);puts(borrar_ave);
                                  
                                  ix +=2;//iy = iy -2;
                                  
                                  gotoxy(ix,iy);puts(ave_l1);
                                  gotoxy(ix,iy+1);puts(ave_l2);
                                  gotoxy(ix,iy+2);puts(ave_l3);
                                  
                              }
                             break;          
                 } //fin del switch
                
      }// Fin if
      
      //rutina para golpes de metoritos
      
      if(( x > ix && x<ix - 6 && y == iy-1)|| (x > ix && xx<ix - 6 && yy == iy-1)
          || (x1 > ix && xx<ix - 6 && y1 == iy-1)|| (x2 > ix && x2<ix - 6 && y2 == iy-1))
          {
                 Corazones --;
                 Barra_salud(Corazones);
                 printf("\a");
          }
          
      gotoxy(ix,iy);puts(ave_l1);      
      gotoxy(ix,iy+1);puts(ave_l2);
      gotoxy(ix,iy+2);puts(ave_l3);
      
      
      if(!Corazones)
      {
                     Num_vidas--;
                     vidas(Num_vidas);
                     Explocion();
                     Corazones =3;
                    
                     Barra_salud(Corazones);
                    
      }
      
      /*rutina para cambio de nivel*/
      
      if(!condicion)
      {
        repeticion ++;
        //condicionc = true;
      }
      if(repeticion == 10)
      {
          nivel++;
          gotoxy(35,1); printf("NIVEL %i",nivel);                
      
          gotoxy(ix,iy); puts(borrar_ave);      
          gotoxy(ix,iy); puts(borrar_ave);  
          gotoxy(ix,iy); puts(borrar_ave);  
          
          iy -= 2; //iy = iy - 2;
          
          gotoxy(ix,iy); puts(ave_l1);      
          gotoxy(ix,iy); puts(ave_l2);  
          gotoxy(ix,iy); puts(ave_l3);
          
          repeticion = 0;
          
                
      }
      x--;
      xx--;
      x1--;
      x2--;
      
      

        
}

int main ()
{
    vidas(Num_vidas);
    Barra_salud(Corazones);
    gotoxy(35,1); printf("NIVEL %i",nivel);  
    
    gotoxy(ix,iy);puts(ave_l1);
    gotoxy(ix,iy+1);puts(ave_l2);
    gotoxy(ix,iy+2);puts(ave_l3);
    
    
    
    while(Num_vidas > 0 && nivel <= 5 )
         jugar();
    
        
     gotoxy(22,16); printf("Game Over");
     Sleep(120);  
    getch();
    return 0;
  
}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines