Escolar Documentos
Profissional Documentos
Cultura Documentos
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];
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;
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,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(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);
exhibe_el_menu(); }
void construye_tronco(void) { gotoxy(41,9); printf("|"); gotoxy(41,10); printf("|"); gotoxy(41,11); printf("|"); gotoxy(41,12); printf("|"); }
void construye_brazo_izquierdo(void)
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; }