HOLA, necesito ayuda para realizar un juego de nave en C ...... en realidad el juego es bastante simple, se basa en una nave "espacial" que tiene q esquivar objetos que caen al azar...... e avanzado un poco el programa pero me falta algunas cosas como por ejemplo que cuando el objeto choque con la nave se reste una vida (con un total de 4 vidas) y al terminar las vidas aparesca un mensaje de Game Over o algo asi si me pueden ayudar se les agradeceria mucho,ya q lo tengo q entregar el viernes y no tengo mucho tiempo para acabarlo(y tampoco mucha practica, por que recien estoy aprendiendo el lenguaje) ........ aca les dejo el codigo hasta donde e avanzado: Compilador: Visual C++ 2010 Código: #include "stdafx.h" #include "stdio.h" #include "conio.h" #include "windows.h" #define MAXBALAS 10 using namespace System; void imprimirFigura(int x, int y) { Console::SetCursorPosition(x+3,y); printf("^"); y++; Console::SetCursorPosition(x+2,y); printf("^^^"); y++; Console::SetCursorPosition(x,y); printf("<*---*>"); y++; Console::SetCursorPosition(x,y); printf("\\-----/"); y++; Console::SetCursorPosition(x+1,y); printf("*****"); y++; } void borrarFigura(int x, int y) { Console::SetCursorPosition(x+3,y); printf(" "); y++; Console::SetCursorPosition(x+2,y); printf(" "); y++; Console::SetCursorPosition(x,y); printf(" "); y++; Console::SetCursorPosition(x,y); printf(" "); y++; Console::SetCursorPosition(x+1,y); printf(" "); y++; } int anchoFigura() { return 7; } int altoFigura() { return 5; } int main(array<System::String ^> ^args) { //nave int posx = 36; int posy = 20; int delta = 3; //balas int balasX[MAXBALAS]; int balasY[MAXBALAS]; int balasDY[MAXBALAS]; Random r; for(int i=0;i<MAXBALAS;i++) { balasX[i]=r.Next(1,79); balasY[i]=0; balasDY[i]=r.Next(1,4); } while(1) {borrarFigura(posx, posy); if (_kbhit()) { char c = _getch(); if (c == 72) posy -= delta; if (c == 80) posy += delta; if (c == 75) posx -= delta; if (c == 77) posx += delta; if (posx < 1) posx = 1; if (posy < 1) posy = 1; if (posx > 79-anchoFigura()) posx = 79-anchoFigura(); if (posy > 26-altoFigura()) posy = 26-altoFigura(); } imprimirFigura(posx,posy); for(int i=0;i<MAXBALAS;i++) { Console::SetCursorPosition(balasX[i],balasY[i]); printf(" "); balasY[i]+=balasDY[i]; if (balasY[i]>24) {balasX[i]=r.Next(1,79); balasY[i]=0; balasDY[i]=r.Next(1,4); } } for(int i=0;i<MAXBALAS;i++) {Console::SetCursorPosition(balasX[i],balasY[i]); printf("*"); } Sleep(500); } _getch(); }