Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - dmnt82

#1
 :o :o Muchas gracias!! has salvado mi alma de satanás >_<'
muchas gracias y perdona las molestias.... >-<' :-[


#2
intente modificar el programa me explicaban, pero no pude

char nave[][]=
                   {
                     { " ***   " },   
                     { " ** *  " },
                     { " ***   " }
                   };


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


#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 nave_l1[]={' ','*','*', ' ',' ',' ',' ',0};  // dibujo de la nave     
char nave_l2[]={' ','*','*', '*',' ',' ',' ',0};
char nave_l3[]={' ','*','*', ' ',' ',' ',' ',0};

char explosion_l1[]={' ',' ','*','*',' ',' ',' ',0};     
char explosion_l2[]={' ','*','*','*','*',' ',' ',0};   //explosion de la nave
char explosion_l3[]={' ',' ','*','*',' ',' ',' ',0};

char explosion_r1[]={'*',' ','*','*',' ','*',' ',0};       
char explosion_r2[]={' ','*','*','*','*',' ',' ',0};  //la segunda explosion
char explosion_r3[]={'*',' ','*','*',' ','*',' ',0};

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

//numero de vidas
int Num_vidas = 3;
int Corazones = 3;
//cordenandas de la nave
int ix = 1;
int iy = 19;

//cordenandas de los asteroides o diamantes
int y = 8, x = 45;
int yy = 18 , xx = 71;
int xl = 58 , yl = 6;
int xr = 70, yr = 9;

int i,v;

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

//aplicacion de libreria de windows
void gotoxy(int x, int y)
{
     HANDLE hCon;
     COORD dwPos;
     
     dwPos.X = x;
     dwPos.Y = y;
     
     hCon = GetStdHandle(STD_OUTPUT_HANDLE);
     SetConsoleCursorPosition(hCon,dwPos);
     
}     
//nombrar las vidas
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);
      }   
}
//explosion de la nave al ser atacado por los asteroides...
void Explosion(void)
{
     gotoxy(ix,iy);   puts(explosion_l1);
     gotoxy(ix,iy+1); puts(explosion_l2);
     gotoxy(ix,iy+2); puts(explosion_l3);
     
     Sleep(380);
     
     gotoxy(ix,iy);   puts(explosion_r1);
     gotoxy(ix,iy+1); puts(explosion_r2);
     gotoxy(ix,iy+2); puts(explosion_r3);
     
     Sleep(380);
     
     gotoxy(ix,iy);   puts(nave_l1);
     gotoxy(ix,iy+1); puts(nave_l2);
     gotoxy(ix,iy+2); puts(nave_l3);
     
}     
//el inicio del juego con los asteroides
void jugar(void)
{
     //rutina de los diamantes
     
      gotoxy(x,y);   printf("%c",4);
      gotoxy(xx,yy); printf("%c",4);
      gotoxy(xl,yl); printf("%c",4);
      gotoxy(xr,yr); printf("%c",4);
     
      Sleep(90);
     
      gotoxy(x,y);   printf(" ");
      gotoxy(xx,yy); printf(" ");
      gotoxy(x1,yl); printf(" ");
      gotoxy(xr,yr); printf(" ");
     
      //%90 es el tiempo que se usa...
      if (y > 20)
      {
            y = 6;
            x = (rand() % 90) + 6;

            //la condicion de "cambio de nivel de game"             
            if( x== 6)
            condicion =false;
           
      }
      if(yy >20)
      {
            yy = 6;
            xx = (rand() % 90) + 6;
           
      }
      if(y1 >20)
      {
            yl = 6;
            xl = (rand() % 90) + 6;
           
      }
      if(yr >20)
      {
            yr = 6;
            xr = (rand() % 90) + 6;
           
            }
     
     
      //rutina de mover la nave
      if (kbhit())
      {
                 unsigned char tecla = getch();
                 
                 switch (tecla)
                 {         
                        case ARR:
                             
                             if(iy > 4)
                             {
                                  gotoxy(ix,iy);puts(borrar_nave);
                                  gotoxy(ix,iy+1);puts(borrar_nave);
                                  gotoxy(ix,iy+2);puts(borrar_nave);
                                 
                                  iy -=2;//iy = iy -2;
                                 
                                  gotoxy(ix,iy);puts(nave_l1);
                                  gotoxy(ix,iy+1);puts(nave_l2);
                                  gotoxy(ix,iy+2);puts(nave_l3);
                                 
                              }
                             break;
                             
                       case ABA:
                           
                            if( iy <20)
                            {
                                  gotoxy(ix,iy);puts(borrar_nave);
                                  gotoxy(ix,iy+1);puts(borrar_nave);
                                  gotoxy(ix,iy+2);puts(borrar_nave);
                                 
                                  iy +=2;//iy = iy +2;
                                 
                                  gotoxy(ix,iy);puts(nave_l1);
                                  gotoxy(ix,iy+1);puts(nave_l2);
                                  gotoxy(ix,iy+2);puts(nave_l3);
                                   
                            }
                            break;
                                 
                         case IZQ:
                             
                             if(ix > 4)
                             {
                                  gotoxy(ix,iy);puts(borrar_nave);
                                  gotoxy(ix,iy+1);puts(borrar_nave);
                                  gotoxy(ix,iy+2);puts(borrar_nave);
                                 
                                  ix -=2;//ix = ix -2;
                                 
                                  gotoxy(ix,iy);puts(nave_l1);
                                  gotoxy(ix,iy+1);puts(nave_l2);
                                  gotoxy(ix,iy+2);puts(nave_l3);
                                 
                              }
                             break;
                         
                          case DER:
                             
                             if(ix <20)
                             {
                                  gotoxy(ix,iy);puts(borrar_nave);
                                  gotoxy(ix,iy+1);puts(borrar_nave);
                                  gotoxy(ix,iy+2);puts(borrar_nave);
                                 
                                  ix +=2;//ix = ix +2;
                                 
                                  gotoxy(ix,iy);puts(nave_l1);
                                  gotoxy(ix,iy+1);puts(nave_l2);
                                  gotoxy(ix,iy+2);puts(nave_l3);
                                 
                              }
                             break;           
                 } //fin del switch
                 
      }// Fin if
     
      //rutina para golpes de asteroides 
      if(( x > ix && x<ix + 6 && y == iy-1)|| (x > ix && xx<ix + 6 && yy == iy-1)
          || (xl > ix && xx < ix + 6 && yl == iy-1)|| (xr > ix && xr<ix  + 6 && yr == iy-1))
          {
                 //donde se va disminuyendo las vidas
                 Corazones --;
                 Barra_salud(Corazones);
                 
          }
           
           
      gotoxy(ix,iy);puts(nave_l1);       
      gotoxy(ix,iy+1);puts(nave_l2);
      gotoxy(ix,iy+2);puts(nave_l3);
     
      //numero de vidas restantes
      if(!Corazones)
      {
                     Num_vidas--;
                     vidas(Num_vidas);
                     Explosion();
                     Corazones =3;
                     
                     Barra_salud(Corazones);
                     
      }
     
      //rutina para cambio de nivel
     
      if(!condicion)
      {
        repeticion --;
        //condicionc = true;
      }
      if(repeticion == 4)
      {
          nivel++;
          gotoxy(35,1); printf("NIVEL %i",nivel);               
     
          gotoxy(ix,iy); puts(borrar_nave);     
          gotoxy(ix,iy); puts(borrar_nave);   
          gotoxy(ix,iy); puts(borrar_nave);   
         
          iy -= 2; //iy = iy - 2;
         
          gotoxy(ix,iy); puts(nave_l1);     
          gotoxy(ix,iy); puts(nave_l2);   
          gotoxy(ix,iy); puts(nave_l3);
         
          repeticion = 0;
         
               
      }
      //inicio de los asteroides de derecha a izquieda
      x--;
      xx--;
      xl--;
      xr--;
     
}

int main ()
{
    vidas(Num_vidas);
    Barra_salud(Corazones);
    //cambio de nivel
    gotoxy(35,1); printf("NIVEL %i",nivel);   
   
    gotoxy(ix,iy);puts(nave_l1);
    gotoxy(ix,iy+1);puts(nave_l2);
    gotoxy(ix,iy+2);puts(nave_l3);
   
   
    //ciclo donde al llegar al 6 se termina el juego
    while(Num_vidas > 0 && nivel <= 5 )
         jugar();
   
         
     gotoxy(22,16); printf("Game Over");
     //tiempo lo que dura el juego
     Sleep(120); 
     
    getch();
    return 0;
   
}


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

//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
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;
 
}