Você está na página 1de 18

Este fichero ,tal y como est construido, necesita de otro fichero que que se llama escribe.

c, en el programa que haremos no lo introduciremos, pero de momento lo pongo como tengo de ejemplo (utilizando los dos ficheros); Fichero escribe.c (Codigo) void escribe(int color,int x, int y, char[20] cadena) { gotoxy(x,y); textcolor(color); // printf("%s",cadena); }

Fichero ahorcado.c (Codigo) #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <time.h> #include <escribe.c> void main() { char matriz[10][20]={"helicoptero","naranja","helice","jardinero","electricista","calenda rio","taladro","cometa","saltamontes","antena"}; int plantilla[1][20],abc=0,x=37,y=21; char abecedario[34]; int palabra,numpalabras=10,adivina,fallos,longpalabra,longadivina,salir; char repetir='s'; int acierto; //Variable booleana: 1 significa que acert una // o m s letras, 0 que no int i,j; char letra[1];

//////// PRESENTACION MENU PRINCIPAL ///////////////////////////////////////

clrscr(); printf("\n\t======================================="); printf("\n\t JUEGO DEL AHORCADO"); printf("\n\t======================================="); printf(""); printf("\n\tInstrucciones: El ordenador pensar una palabra y t tienes 10"); printf("\n\tintentos para acertarla. En cada intento podr s elegir una letra."); printf("\n\tSi la palabra a adivinar la contiene, aparecer en su corres-"); printf("\n\tpondiente posicin. Sino, tendr s un intento menos.Hasta agotar"); printf("\n\tlos 10. BUENA SUERTE!!!"); printf("\n\n"); printf("\nPulsa una tecla para empezar..."); getch(); //Busca una palabra aleatoriamente do { clrscr(); randomize(); acierto=0; fallos=0; longpalabra=0; longadivina=0; salir=0; adivina=random(numpalabras-1)+1; for (i=0;matriz[adivina][i]!='\0';i++) { plantilla[1][i]=0; longpalabra++; } plantilla[1][i]='\0'; // gotoxy(12,13); escribe(15,12,13); cprintf("Palabra a adivinar: "); //Presentamos la linea inicial punteada con tantos espacios como letras for (i=0;matriz[adivina][i]!='\0';i++) { printf(" _ "); }

do { //gotoxy(10,15); escribe(15,10,15); cprintf("Introduce una letra: "); scanf("%s",&letra); //gotoxy(12,13); escribe(15,12,13); cprintf("Palabra a adivinar: "); for (i=0;matriz[adivina][i]!='\0';i++) { if (matriz[adivina][i]==letra[0]) { plantilla[1][i]=1; printf(" %c ",matriz[adivina][i]); acierto=1; } else { if (plantilla[1][i]==1) { printf(" %c ",matriz[adivina][i]); } else { printf(" _ "); } } } //gotoxy(21,21); escribe(15,21,21); cprintf("Letras cogidas: "); abecedario[abc]=letra[0]; x++; //gotoxy(x,y); escribe(15,x,y); printf("%c",abecedario[abc]); abc++; if (acierto==0) { fallos++; switch (fallos)

{ case 1: escribe(6,5,9); cprintf("___________"); break; case 2: escribe(6,5,8); cprintf("|"); escribe(6,5,7); cprintf("|"); escribe(6,5,6); cprintf("|"); escribe(6,5,5); cprintf("|"); escribe(6,5,4); cprintf("|"); escribe(6,5,3); cprintf("|"); escribe(6,5,2); cprintf("|"); break; case 3: //gotoxy(5,1); escribe(6,5,1); cprintf("__________"); break; case 4: //gotoxy(11,2); escribe(6,11,2); cprintf("|"); break; case 5: //gotoxy(11,3); escribe(11,11,3); cprintf("0"); break; case 6: //gotoxy(9,4); escribe(11,9,4); cprintf("--+--"); break;

case 7: //gotoxy(11,5); escribe(11,11,5); cprintf("|"); break; case 8: //gotoxy(10,6); escribe(11,10,6); cprintf("/"); break; case 9: //gotoxy(12,6); escribe(11,12,6); cprintf("\\"); break; } } longadivina=0; for (j=0;plantilla[1][j]!='\0';j++) { if (plantilla[1][j]==1) longadivina=longadivina+plantilla[1][j]; } acierto=0; if (fallos==9) salir=1; if (longadivina==longpalabra) salir=1; } while (salir==0); if (fallos==9) { gotoxy(35,5); printf("LO SIENTO...... No acertaste."); gotoxy(35,7); printf("La palabra era ");puts(matriz[adivina]); gotoxy(35,9); printf("Quieres intentarlo otra vez?(s/n) "); repetir=getch(); } else

{ gotoxy(35,5); printf("FELICIDADES!!! Acertaste!!"); gotoxy(35,7); printf("Quieres intentarlo otra vez?(s/n) "); repetir=getch(); } } while (repetir=='s'); }

#include <iostream.h> #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define num_palabras 3 void cosntruye_todo (); void captura_las_palabras(); void muestra_las_palabras(); void exhibe_el_menu(); void elegir_palabra(); void construye_cabeza(); void construye_tronco(); void construye_brazo_izquierdo(); void construye_brazo_derecho(); void construye_pie_izquierdo(); void construye_pie_derecho(); void construye_horca(); int opcion_elegida; int posicion_de_palabra_a_adivinar; int cant_de_palabras=num_palabras; int longitud_de_las_palabras[num_palabras]; char todas_las_palabras[20][num_palabras]; char palabra_actual[20]; int longitud_palabra_actual;

main() { opcion_elegida=0; clrscr(); exhibe_el_menu(); getche(); return 0; }

void exhibe_el_menu(void) { clrscr(); do { gotoxy(25,2); printf("PRECIONA EL NUMERO DE LA OPCION QUE DESEE"); gotoxy(25,3);

printf("-----------------------------------"); gotoxy(25,3.5); printf(""); gotoxy(59,3.5); printf("!"); gotoxy(25,4); printf(" MENU DEL JUEGO EL AHORCADO !");

gotoxy(25,5); printf(" 1 - INGRESAR LAS PALABRAS ! ");

gotoxy(25,6); printf(" 2 - JUGAR EL AHORCADO ! ");

gotoxy(25,7); printf(" 3 - MOSTRAR LAS PALABRAS ! ");

gotoxy(25,8); printf(" 4 - ABANDONAR EL PROGRAMA ! ");

gotoxy(25,9);

printf("-----------------------------------"); gotoxy(25.5,15); printf("ELIJA LA OPCION QUE DESEE Y PULCE ACEPTAR:"); gotoxy(67,15); scanf("%d",&opcion_elegida); } while (opcion_elegida < 1 || opcion_elegida > 4); switch (opcion_elegida) { case 1: captura_las_palabras(); case 2: elegir_palabra(); case 3: muestra_las_palabras(); case 4: exit(1); } }

void captura_las_palabras(void) { int i,j; clrscr(); for (i=0; i<cant_de_palabras;i++) { gotoxy(5,i+10); printf("ESCRIBA LA PALABRA NUMERO %d: ", i+1); gotoxy(35,i+10); cin>>palabra_actual; longitud_palabra_actual = strlen(palabra_actual); longitud_de_las_palabras[i]=longitud_palabra_actual; for(j=0;j<longitud_palabra_actual; j++) todas_las_palabras[j][i]=palabra_actual[j];

} exhibe_el_menu();

void muestra_las_palabras(void) { int i,j; clrscr(); for (i=0; i<cant_de_palabras;i++) { gotoxy(5,i+10); printf("PALABRA No %d", i+1); longitud_palabra_actual=longitud_de_las_palabras[i]; for(j=0; j<longitud_palabra_actual;j++) { gotoxy(19+j, i+10); printf("%c", todas_las_palabras[j][i]); } } printf("n Pulse una tecla para continuar..."); getche(); exhibe_el_menu(); }

void elegir_palabra(void) { int longitud_de_palabra_a_adivinar,l; int i,j,sw=0,errores=0,contaP=0; char letra[1],completa[20]; clrscr(); do { gotoxy(10,4); printf("Escriba un numero entre 1 y %d y pulse enter:", cant_de_palabras); gotoxy(55,4); scanf("%d",&posicion_de_palabra_a_adivinar); clrscr(); } while (posicion_de_palabra_a_adivinar < 1 || posicion_de_palabra_a_adivinar > cant_de_palabras);

longitud_de_palabra_a_adivinar=longitud_de_las_palabras[posicion_de_palabra_a_adivinar-1]; for(i=0;i<longitud_de_palabra_a_adivinar;i++) { gotoxy(i+20,3); printf("-"); } do { i++; gotoxy(10,4); printf("n Escriba Una Letra y Presione <Enter>..."); cin>>letra; sw=0; for(j=0;j<longitud_de_palabra_a_adivinar; j++) { if (todas_las_palabras[j][posicion_de_palabra_a_adivinar-1]==letra[0]) { gotoxy(j+20,3); printf("%c",letra[0]); completa[j]=letra[0]; sw=1; } } contaP=0; for(l=0;l<longitud_de_palabra_a_adivinar; l++) { if(completa[l]==todas_las_palabras[l][posicion_de_palabra_a_adivinar-1]) contaP++; }

if (contaP==longitud_de_palabra_a_adivinar) { gotoxy(37,10); printf("nGANASTES EL JUEGO....."); errores=4; i=longitud_de_palabra_a_adivinar; getch();

exhibe_el_menu(); } else { if( sw==0) errores++;

if(errores== 1) construye_cabeza(); else if(errores==2) construye_tronco(); else if(errores==3) construye_brazo_derecho(); else if(errores==4) construye_brazo_izquierdo(); else if(errores==5) construye_pie_derecho(); else if(errores==6) construye_pie_izquierdo(); else if(errores==7) { clrscr(); cosntruye_todo (); errores = 7 ; } } }while(i<longitud_de_palabra_a_adivinar|| errores <=6);

printf("nn Pulse una tecla para continuar..."); getche();

exhibe_el_menu(); }

void construye_cabeza(void) { gotoxy(39,6); printf("|||||"); gotoxy(38,7); printf("| . . |"); gotoxy(39,8); printf("|_-_|");

void construye_tronco(void) { gotoxy(41,9); printf("|"); gotoxy(41,10); printf("|"); gotoxy(41,11); printf("|"); gotoxy(41,12); printf("|"); }

void construye_brazo_derecho(void) { gotoxy(40,9); printf("/"); gotoxy(38,10); printf("/"); }

void construye_brazo_izquierdo(void)

{ gotoxy(42,9); printf(""); gotoxy(44,10); printf(""); }

void construye_pie_izquierdo(void) { gotoxy(42,13); printf(""); gotoxy(44,14); printf(""); }

void construye_pie_derecho(void) { gotoxy(40,13); printf("/"); gotoxy(38,14); printf("/"); }

void cosntruye_horca(void) { int i; gotoxy(41,5); printf(":"); gotoxy(41,4); printf(":"); gotoxy(41,3); printf(":");

gotoxy(42,3); printf(":::::::::::::::"); for(i=3;i<18;i++) { gotoxy(57,i); printf(":"); } gotoxy(50,i); printf("==============="); } void cosntruye_todo(void) { gotoxy(37,4); printf("nPERDISTE EL JUEGO....."); cosntruye_horca(); construye_pie_derecho(); construye_pie_izquierdo(); construye_brazo_derecho(); construye_brazo_izquierdo(); construye_tronco(); construye_cabeza(); }

Juego del Ahorcado #include <fstream.h> #include <time.h> #include <stdlib.h> #include <string.h> void Jugar(char *pal); int Menu(); void CargaPalabra(char *palabra);

void main() { char pal[80]="",ch[2]; while(1){ int opc=Menu(); if (opc==3)break; else if(opc==1) CargaPalabra(pal); else if (opc==2) Jugar(pal); } } void Jugar(char *pal) { char ch; int len=strlen(pal); char *adivinados = new char[len+1]; char usados[30]; //son 26 las letras int nusados=0; //llevar las cuentas int intentos=0; for (int i=0;i<len;i++) adivinados[i]='X'; while(1){ cout << "\nAdivinados: "; for ( i=0;i<len;i++) cout << adivinados[i]<<" ";

cout << " -> Dar digito:?"; cin >> ch; usados[nusados++]=ch; //guardamos el digito bool esta=false; for ( i=0;i<len;i++) { if (ch==pal[i]) { adivinados[i]=ch; esta=true; } } if (esta==false) intentos++; //sino ha acertado if (intentos==9){ cout << "Ahorcado....La palabra es:"<<pal; break; //termina el while }else{ for ( i=0;i<len;i++) if (adivinados[i]=='X') break; if (i==len) { Solucin Ex. Junio06 GrA - Programacin C++ Pg. 2 Informtica II - Fundamentos de Programacin Paul Bustamante cout << "Enhorabuena...La palabra es:"<<pal<<endl; break; }else{ cout << "\tIntentos:"<<intentos; cout << " Digitos ya usados: "; for ( i=0;i<nusados;i++) cout<<usados[i]<<" ";

} } delete [] adivinados; } void CargaPalabra(char *palabra) { char file[40]; cout << "Nombre del fichero:?"; cin >> file; fstream fin(file,ios::in|ios::nocreate); int num=0; while(!fin.eof()) { fin>>palabra; num++; } cout << "Se ha seleccionado 1 de "<<num<<" palabras"<<endl; fin.close(); //empezar de nuevo fin.open(file,ios::in|ios::nocreate); srand(time(NULL)); int n=rand()%num; //elegir cualquier palabra num=0; while(!fin.eof()) { fin>>palabra;

if (num==n) break; //se termina la busqueda num++; } fin.close(); } int Menu() { int opc; cout << "\n** Juego del Ahorcado **"<<endl; cout << "1. Cargar Palabra"<<endl; cout << "2. Jugar"<<endl; cout << "3. Salir"<<endl; cout << "\tOpc:?"; cin >> opc; return opc; }

Você também pode gostar