Muchas gracias!! has salvado mi alma de satanás >_<'
muchas gracias y perdona las molestias.... >-<'
muchas gracias y perdona las molestias.... >-<'
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úchar nave[][]=
{
{ " *** " },
{ " ** * " },
{ " *** " }
};
#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;
}