
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();
}
*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


0