C/Visual C - ayuda urgente

   
Vista:

ayuda urgente

Publicado por jorge (13 intervenciones) el 28/11/2007 00:38:08
La ayuda que necesito es la siguiente:
*quiero que cuando la vibora se mueva suene como el pacman

*poner un cronometro en tiempo real

*guardar el record

*hacer que el usuario pueda cambiar los comandos de movimiento de la vibora...

*hacer que aparescan con un random letras y que se indique que letra tiene que chocar para pasar a la otra etapa
*y por ultimo que cada vez que pierda una oportunidad se le agreguen tres secciones mas a la vibora y que cuando pierda una vida vuelvan a ser solo tres secciones...
ojala puedan ayudarme con lo que puedan por lo menos con los tres primeros puntos...
primero que todo este es mi codigo:

#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <string.h>
#define VEL 100
#include <stdlib.h>
#include<time.h>

void gotoxy(int x, int y);
void borrar(int posx[], int posy[], int x, int y, int longitud);
void tablero();
void marcador();
void random();
void reinicio();
void tiempo();

int canon[10];
int xx;
int yy;
int vida;
int intentos;
int xoke;

int main()
{
int cur;
int posx[4];
int posy[3];
int longitud=3;
int opc;

do
{
system("cls");
printf(" **** MENU SNAKE **** ");
printf(" 1.-Jugar ");
printf(" 2.-Ver Records ");
printf(" 3.-Configuracion ");
printf(" 4.-Ayuda ");
printf(" 5.-Salir ");
printf(" ");
printf(" Ingrese opcion: ");
scanf("%i",&opc);


posx[3]=0;

switch(opc)
{
case 1:

//inicia el juego
vida = 3;
intentos = 3;

while(vida!=0&&intentos!=0)
{
tablero();
random();

while(vida!=0)
{
xoke=0;
gotoxy(xx,yy);
printf("%c",4);
cur = getch();
gotoxy(xx,yy);
printf(" ");
/*if(intentos==3){
posx[4]=posx[4];
posy[3]=posy[3];
longitud=3;
}
if(intentos==2){
posx[4]=posx[7];
posy[3]=posy[6];
longitud=6;
}
if(intentos==1){
posx[7]=posx[10];
posy[6]=posy[9];
longitud=9;
}
*/
while(kbhit()==0 && xoke!=1)
{

//izquierda
if(cur==75)
{
Sleep(VEL);
//gotoxy(xx,yy);
xx--;
borrar(posx,posy,xx,yy,longitud);
gotoxy(xx,yy);
printf("%c",4);

if(xx==1||xx==14&&yy==16||xx==26&&yy==18||xx==37&&yy==16)
{
reinicio();
}
}

//derecha
if(cur==77)
{
Sleep(VEL);
//gotoxy(xx,yy);
xx++;
borrar(posx,posy,xx,yy,longitud);
gotoxy(xx,yy);
printf("%c",4);

if(xx==50||xx==14&&yy==16||xx==26&&yy==18||xx==37&&yy==16)
{
reinicio();
}
}

//arriba
if(cur==80)
{
Sleep(VEL);
//gotoxy(xx,yy);
yy++;
borrar(posx,posy,xx,yy,longitud);
gotoxy(xx,yy);
printf("%c",4);

if(yy==25||xx==14&&yy==16||xx==26&&yy==18||xx==37&&yy==16)
{
reinicio();
}
}

//abajo
if(cur==72)
{
Sleep(VEL);
//gotoxy(xx,yy);
yy--;
borrar(posx,posy,xx,yy,longitud);
gotoxy(xx,yy);
printf("%c",4);

if(yy==1||xx==14&&yy==16||xx==26&&yy==18||xx==37&&yy==16)
{
reinicio();
}
}

}
}
}

system("cls");
gotoxy(20,13);
printf("**** GAME OVER ****");
getch();
break;

case 2:
break;

case 3:
break;

case 4:
system("cls");
printf(" *****AYUDA SNAKE***** ");
printf(" PARA JUGAR SNAKE ES MUY SIMPLE, PARA MOVER LA SNAKE SOLO DEBES PULSAR LAS TECLAS DE DIRECCION, SI CHOCAS CON LAS PAREDES, CON LOS ASTEROIDES O CON UNA LETRA EQUIVOCADA PIERDES UNA VIDA Y AL PERDER CADA VIDA SE ALARGARA EN 3 BLOQUES MAS LA SNAKE EL OBJETIVO DEL JUEGO ES TOMAR LA LETRA QUE TIENES COMO OBJETIVO LA CUAL SE MUESTRA EN EL MARCADOR UBICADO EN EL LADO DERECHO DE LA PANTALLA ");
getch();
break;

case 5:
system("cls");
gotoxy(20,13);
printf("****GRACIAS POR JUGAR SNAKE****");
break;
}
} while (opc!=5);
}

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

void borrar(int posx[], int posy[], int x, int y, int longitud)
{
int i;

if(posx[3]!=longitud){
posx[posx[3]]=x;
posy[posx[3]]=y;
posx[3]++;
}
else
{
gotoxy(posx[0],posy[0]);
printf(" ");

for(i=0;i<longitud-1;i++)
{
posx[i]=posx[i+1];
posy[i]=posy[i+1];
}

posx[longitud-1]=x;
posy[longitud-1]=y;
}

}

void tablero()
{
int i;
int a = 3;
int b;
system("cls");
gotoxy(20,10);
printf("TIENES %d VIDA(S) ",vida);
gotoxy(20,12);
printf("TIENES %d INTENTO(S) ",intentos);
getch();
system("cls");
gotoxy(00,00);
printf("%c",201);
gotoxy(00,26);
printf("%c",200);
gotoxy(51,00);
printf("%c",187);
gotoxy(51,26);
printf("%c",188);

//Asteroides

gotoxy(14,16);
printf("%c",42);
gotoxy(26,18);
printf("%c",42);
gotoxy(37,16);
printf("%c",42);

for(i=0;i<50;i++)
{
gotoxy(i+1,00);
printf("%c ",205);
gotoxy(i+1,26);
printf("%c ",205);
}

for(i=0;i<24+1;i++)
{
gotoxy(00,i+1);
printf("%c ",186);
gotoxy(51,i+1);
printf("%c ",186);
}

//lista que guarda posicion X de cañones
for(i=0;i<10;i++)
{
canon[i] = a;
a = a + 5;
}

//imprime cañones
for(i=0;i<10;i++)
{
b = canon[i];
gotoxy(b,25);
printf("%c",219);
}
marcador();
}

//Tablero de puntos y tiempo
void marcador()
{
int i;
//esquinas
gotoxy(52,00);
printf("%c",201);
gotoxy(79,00);
printf("%c",187);
gotoxy(52,26);
printf("%c",200);
gotoxy(79,26);
printf("%c",188);
//lados
for(i=53;i<79;i++){
gotoxy(i,00);
printf("%c",205);
gotoxy(i,26);
printf("%c",205);
}
for(i=01;i<26;i++){
gotoxy(52,i);
printf("%c",186);
gotoxy(79,i);
printf("%c",186);
}
gotoxy(53,01);
printf("**********SNAKE***********");
gotoxy(53,02);
//tiempo();
gotoxy(53,03);
printf("VIDAS : %d",vida);
gotoxy(53,05);
printf("INTENTOS: %d",intentos);
gotoxy(53,07);
printf("PUNTAJE : ");
gotoxy(53,10);
printf("PROXIMO OBJETIVO : ");
gotoxy(53,12);
printf("**********TOP 5**********");
gotoxy(53,13);
printf("NOMBRE************PUNTAJE");
gotoxy(53,14);
printf(" 1.- ED Demasiado...");
gotoxy(53,15);
printf(" 2.- ");
gotoxy(53,16);
printf(" 3.- ");
gotoxy(53,17);
printf(" 4.- ");
gotoxy(53,18);
printf(" 5.- ");
}

void random()
{
int a, b;

//random para los cañones
srand(time(NULL));
a = (rand()%10);
b = canon[a];
xx=b;
yy=24;
}

void reinicio()
{
xoke = 1;
intentos--;
if(intentos==0){
vida--;
}
if(vida==0) {
intentos=0;
}
if(intentos==0){
intentos=3;
}
tablero();
random();
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda urgente

Publicado por Nelek (818 intervenciones) el 29/11/2007 14:44:33
Tu mensaje es demasiado largo y molesto para leer y mirar profundamente.

* quiero que cuando la vibora se mueva suene como el pacman
Busca el sonido del pacman. Crea una funcion que lo cargue y manda un "disparador" al final de la funcion que uses para mover la serpiente para que se reproduzca el sonido


*poner un cronometro en tiempo real
Usa el reloj del pc, pero cuanto mas preciso quieras el cronometro mas lento te ira el juego.

*guardar el record
Usa CFile o FILE

*hacer que el usuario pueda cambiar los comandos de movimiento de la vibora...
Crea una funcion que explique el movimiento, ponga la tecla actual y espere otra una pulsacion del teclado, guarda la tecla en otra estructura y luego, para utilizarlas, tendras que usar el mensaje de "tecla presionada", mirar que tecla ha sido presionada y compararla con las que tienes guardadas en la estructura con los nuevos comandos. En caso de haber coincidencia, llamar a la funcion de movimiento que toque.

*hacer que aparescan con un random letras y que se indique que letra tiene que chocar para pasar a la otra etapa

?????????????

*y por ultimo que cada vez que pierda una oportunidad se le agreguen tres secciones mas a la vibora y que cuando pierda una vida vuelvan a ser solo tres secciones...

int nLargoSecciones = 1;
if (fallo)
nLargoSecciones += 3;
else if (muerte)
nLargoSecciones -= 3;
else
//a tu gusto

y para pintar la serpiente...
for (int cont = 0; cont < nLargoSecciones; cont++)
//tu codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar