/* ############################################################################### ############################################################################### ## Pong,Clasico juego del pong ## ## Copyright (C) <2007> ## ## ## ## This program is free software: you can redistribute it and/or modify ## ## it under the terms of the GNU General Public License as published by ## ## the Free Software Foundation, either version 3 of the License, or ## ## (at your option) any later version. ## ## ## ## This program is distributed in the hope that it will be useful, ## ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## ## GNU General Public License for more details. ## ## ## ## Software name: Pong ## ## Date : 12/11/2007 ## ## Programmer : Gora ## ## Description : Juega el divertido juego del pong ## ############################################################################### ############################################################################### */ //LIBRERIAS #include #include #include #include #include #define MAXX 79 #define MINX 2 #define MAXY 23 #define MINY 3 #include #pragma comment(lib, "winmm32.lib") //FUNCION intro void intro() { int j=0; char op,resp; char soundfile[] = "C:/Pong/intro2.wav"; PlaySound(soundfile,NULL,SND_FILENAME|SND_ASYNC); for(j=0;j<=5;j++) { Sleep(200); clrscr(); gotoxy(35,5); textcolor(RED); printf("\n ##########################################"); printf("\n ### Gora & Danthux ###"); printf("\n ### Present... ###"); printf("\n ##########################################"); Sleep(50); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf(" |||||||| |||||||| || || |||||||| \n"); printf(" || || || || ||| || || \n"); printf(" || || || || || | || || |||| \n"); printf(" |||||||| || || || | || || || \n"); printf(" || |||||||| || ||| |||||||| \n"); printf(" R E V O L U T I O N \n"); textcolor(LIGHTGRAY); } } //ESTRUCTURA DE DATOS struct datos { char nombre[20]; int puntos; }; //FUNCION GUARDAR ARCHVIO DE DATOS void recordal ( FILE *archivo, int punto) { struct datos a; char resp; archivo = fopen ("Record.txt", "ab"); if (archivo == NULL) { printf("Falla al abrir el archivo \n"); exit (EXIT_FAILURE); } do { clrscr(); printf(" \n Escriba Su Nombre/Nick: "); fflush(stdin);gets (a.nombre); printf(" \n Su nombre de Usuario es: %s, Esta Correcto? [Enter]",a.nombre); gotoxy(15,24); printf("\n Si su nombre no es Correcto presione cualquier tecla"); resp=getch(); }while(resp!=13); fflush(stdin); a.puntos=punto; clrscr(); gotoxy(35,5); printf("\n Felicitaciones %s has marcado un nuevo record!",a.nombre); printf("\n Tu Record es de %d",a.puntos); Sleep(2000); fwrite (&a, sizeof(a), 1, archivo); fclose ( archivo ); } //FUNCION MOSTRAR DATOS ARCHIVO void lectura ( FILE *archivo ) { struct datos a; archivo = fopen ("Record.txt", "rb"); if (archivo == NULL) { printf("Falla al abrir el archivo \n"); exit (EXIT_FAILURE); } clrscr(); printf ( " \n Los record son: \n "); while ( ! feof ( archivo ) ) //mientras no termine el archivo realice! { fread (&a, sizeof (a), 1, archivo ); if ( feof ( archivo ) ) break; //es un seguro po si el archivo esta corrupto printf("\n"); printf("\n"); printf("\n Nombre Jugador: %s",a.nombre); printf("\n Record : %d",a.puntos); } if(kbhit()) { fclose ( archivo ); } getch(); } //MENU int menu(int rm) { char op; int x=32,y=9; clrscr(); textcolor(RED); printf("\n #######################################"); printf("\n #######################################"); printf("\n ## ##"); printf("\n ## * MENU PONG * ##"); printf("\n ## ##"); printf("\n ## Jugar Pong. ##"); printf("\n ## ##"); printf("\n ## Instrucciones ##"); printf("\n ## ##"); printf("\n ## Records ##"); printf("\n ## ##"); printf("\n ## Salir ##"); printf("\n ## ##"); printf("\n #######################################"); printf("\n #######################################"); gotoxy(x=x-2,y=y-2);textcolor(LIGHTGRAY); printf("===>"); do{ op=getch(); if((op==72)&&(x>=32)&&(y>=9)) { clrscr();textcolor(RED); printf("\n #######################################"); printf("\n #######################################"); printf("\n ## ##"); printf("\n ## * MENU PONG * ##"); printf("\n ## ##"); printf("\n ## Jugar Pong. ##"); printf("\n ## ##"); printf("\n ## Instrucciones ##"); printf("\n ## ##"); printf("\n ## Records ##"); printf("\n ## ##"); printf("\n ## Salir ##"); printf("\n ## ##"); printf("\n #######################################"); printf("\n #######################################"); gotoxy(x=x-2,y=y-2);textcolor(LIGHTGRAY); printf("===>"); } else if((op==80)&&(x<=38)&&(y<=12)) { clrscr();textcolor(RED); printf("\n #######################################"); printf("\n #######################################"); printf("\n ## ##"); printf("\n ## * MENU PONG * ##"); printf("\n ## ##"); printf("\n ## Jugar Pong. ##"); printf("\n ## ##"); printf("\n ## Instrucciones ##"); printf("\n ## ##"); printf("\n ## Records ##"); printf("\n ## ##"); printf("\n ## Salir ##"); printf("\n ## ##"); printf("\n #######################################"); printf("\n #######################################"); gotoxy(x=x+2,y=y+2);textcolor(LIGHTGRAY); printf("===>"); } }while(op!=13); fflush(stdin); rm=x; return (rm); } //FUNCION INSTRUCCIONES void ayuda() { clrscr(); textcolor(RED); printf("\n###############################################################################"); printf("\n###############################################################################"); printf("\n## ##"); printf("\n## INSTRUCCIONES ##"); printf("\n## Copyright (C) <2007> ##"); printf("\n## ##"); printf("\n## 1) Para poder desplazarte con las barras o Paddles usted debe ##"); printf("\n## presionar la barra de direccion arriba o abajo asi tambien ##"); printf("\n## como en el Menu De juego. ##"); printf("\n## ##"); printf("\n## 2) La finalidad de este clasico juego llamado PONG es la de ##"); printf("\n## evitar que la pelota salga de los margenes del juego en ##"); printf("\n## este caso que la pelota este atras de las barras o paddles ##"); printf("\n## ##"); printf("\n## 3) Los puntos seran contados cada vez que la pelota golpe ##"); printf("\n## la pared opuesta a la barrita o Paddle, al llegar al maximo ##"); printf("\n## de puntos usted podra entrar al Salon de la Fama y su record ##"); printf("\n## sera exhibido para todos los usuarios. ##"); printf("\n## ##"); printf("\n## ##"); printf("\n## Para volver al menu presione cualquier tecla ##"); printf("\n###############################################################################"); printf("\n###############################################################################"); textcolor(LIGHTGRAY); getch(); } //CREDITOS void creditos() { textcolor(RED); printf("\n###############################################################################"); printf("\n###############################################################################"); printf("\n## ##"); printf("\n## CREDITOS ##"); printf("\n## Copyright (C) <2007> ##"); printf("\n## ##"); printf("\n## Los agradecimientos seran totalmente para Usted por ##"); printf("\n## preferirnos y darnos la oportunidad de crear entretenimientos ##"); printf("\n## para su familia. ##"); printf("\n## ##"); printf("\n## ##"); printf("\n## ##"); printf("\n## ##"); printf("\n## ##"); printf("\n## ##"); printf("\n## ##"); printf("\n## xxgoraxx@gmail.com ##"); printf("\n## ##"); printf("\n## ##"); printf("\n## ##"); printf("\n## ##"); printf("\n## Gracias por jugar Pong Revolution ##"); printf("\n###############################################################################"); printf("\n###############################################################################"); textcolor(LIGHTGRAY); getch(); } //LIMITES del area de JUEGo void limites() { int j,i; for(i=MINX-1;i<=MAXX+1;i++) { for(j=MINY-1;j<=MAXY+1;j++) { gotoxy(i,j); if(j==MINY-1||j==MAXY+1||i==MINX-1||i==MAXX+1) { //printf("%c",219); } else printf(" "); } } } //Funcion Esperar void esperar(float temp) { time_t t1; t1=clock(); while((clock()-t1) %d/10 ",conta,punto); gotoxy(x,y); textcolor(RED); printf("%c",2); textcolor(LIGHTGRAY); esperar(vel); if(x==MINX) { varx=1; conta--; PlaySound(soundfile4,NULL,SND_FILENAME|SND_ASYNC); }else if((y==a-1)||(y==a+1)||(y==a-2)||(y==a+2)) { if(x==7) { varx=1; PlaySound(soundfile1,NULL,SND_FILENAME|SND_ASYNC); } } if(conta==0) { clrscr(); gotoxy(25,9); printf("Ouch... has perdido...."); gotoxy(21,23); printf("***Para volver al menu presiona cualquier tecla***"); getch(); break; } if(x==MAXX) { varx=-1; PlaySound(soundfile1,NULL,SND_FILENAME|SND_ASYNC); punto++; } if(punto==10) { clrscr(); gotoxy(29,9); printf("Felicitaciones Has GANADO!!"); Sleep(2000); recordal(arch,punto); gotoxy(21,23); printf("***Para volver al menu presiona cualquier tecla***"); getch(); break; } if(y==MINY) { vary=1; } if(y==MAXY) { vary=-1; } x=x+varx; y=y+vary; } } //FUNCION MENU DIFICULTAD int menud(int rd) { char op; int x=32,y=7; char soundfile1[] = "C:/Pong/dificultad.wav"; char soundfile[] = "C:/Pong/destiny.wav"; clrscr();textcolor(RED); printf("\n #######################################"); printf("\n #######################################"); printf("\n ## ##"); printf("\n ## * DIFICULTAD PONG * ##"); printf("\n ## ##"); printf("\n ## Papita ##"); printf("\n ## ##"); printf("\n ## Normal ##"); printf("\n ## ##"); printf("\n ## Peluo!! ##"); printf("\n ## ##"); printf("\n #######################################"); printf("\n #######################################"); PlaySound(soundfile,NULL,SND_FILENAME|SND_ASYNC); do{ op=getch(); if((op==72)&&(y>7)) { clrscr();textcolor(RED); printf("\n #######################################"); printf("\n #######################################"); printf("\n ## ##"); printf("\n ## * DIFICULTAD PONG * ##"); printf("\n ## ##"); printf("\n ## Papita ##"); printf("\n ## ##"); printf("\n ## Normal ##"); printf("\n ## ##"); printf("\n ## Peluo!! ##"); printf("\n ## ##"); printf("\n #######################################"); printf("\n #######################################"); gotoxy(x,y=y-2);textcolor(LIGHTGRAY); printf("===>"); } else if((op==80)&&(y<11)) { clrscr();textcolor(RED); printf("\n #######################################"); printf("\n #######################################"); printf("\n ## ##"); printf("\n ## * DIFICULTAD PONG * ##"); printf("\n ## ##"); printf("\n ## Papita ##"); printf("\n ## ##"); printf("\n ## Normal ##"); printf("\n ## ##"); printf("\n ## Peluo!! ##"); printf("\n ## ##"); printf("\n #######################################"); printf("\n #######################################"); gotoxy(x,y=y+2);textcolor(LIGHTGRAY); printf("===>"); } }while(op!=13); fflush(stdin); rd=y; return (rd); } //FUNCION PRINCIPAL int main() { int rd,rm,aa,ad; int vel,movi=1000000; FILE *arch; intro(); do{ aa=menu(rm); if(aa==30) { ad=menud(rd); if(ad==7) { vel=120; } if(ad==9) { vel=75; } if(ad==11) { vel=40; } system("cls"); movimiento(movi,vel); } if(aa==32) { ayuda(); } if(aa==34) { lectura(arch); } }while(aa!=36); clrscr(); creditos(); getch(); return(0); }