elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con juego el ahorcado en lenguaje c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con juego el ahorcado en lenguaje c  (Leído 8,326 veces)
KIDRAP1

Desconectado Desconectado

Mensajes: 24



Ver Perfil
Ayuda con juego el ahorcado en lenguaje c
« en: 25 Junio 2013, 22:43 pm »

Hola muchachos el problema es el siguiente tengo que realizar el siguiente programa con las especificaciones de que tenga 8 oportunidades equivalente alas 8 letras que tiene la palabra "AHORCADO" y que cada vez que el usuario se equivoque se valla escribiendo letra por letra por cada error la palabra ahorcado. aqui les dejo el codigo espero puedan ayudarme
Código:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<math.h>
#include<ctype.h>
#define TRUE 1
#define FALSE 0
void imprimir(int oport, char *wordserr,char *word);
int found_word(char letra);
int menu(void);
int exist_word(char letra);
char *adivina(void)
{
char *diccionario[]={"UNEFA","VENEZUELA","SILLA","PERRO","SOMBRILLA",
      "PAJARO","GATO","CONEJO","ZORRO","CABALLO","PEZ",
     "MATEMATICA","CLAVO","LAPIZ","MADERA","PEGA","CASA",
     "ELECTRONICA","CIRCUITO","AGUA","TABLA","PESAS","BARCO",
     "LANCHA","CASA","BOLIVAR","BICICLETA","MONTAÑA",
     "VECTOR","FISICA","LICENCIA","BEISBOL","FUTBOL",
     "BASKET","CABLE","NATACION","MARATON","IMPRESORA",
     "COMPUTADORA","CAMARA","ZAMURO","AHORCADO","IMPRIMIR",
     "DISCO","FOTO","MARCO","GRANDEZA","PROGRAMA","MOVIMIENTO",
     "CADENA","BALLENATO","NOCHE","DIA"};
int num;
srand( (unsigned)time( NULL ) );
num=rand()%50;
return(diccionario[num]);
}

char *cadena, palabra[10], letraserror[10];
main(){
       system ("color a0");
          printf("\n\n\t\t     Programadores: Jose Castillo, Luis Osorio\n\n\t\t\t\t#Juego del Ahorcado#\n\n\n\t\n\n");
          printf("                         \t       _____");
printf("\n                                      |");
printf("\n                                      |  0");
printf("\n                                      | /|\\");
printf("\n                                      | / \\ ");
printf("\n                                      |\n");
printf("\n                                      |\n\n\n\n\n");
       system ("pause");
       
int i, cont=0,game_over=FALSE, oportunidades, acierto=FALSE, existe;
int opc=0;
char letra;
system("cls");
opc=menu();
do{
system("cls");
switch(opc){
case 1:
cadena=adivina();
strcpy(palabra,cadena);
oportunidades=8;
for(i=0;i<strlen(cadena);i++) palabra[i]='$';
for(i=cont;i>=0;i--) letraserror[i]='\0';
cont=0;
do{
do{
fflush(stdin);
system("cls");
existe=acierto=FALSE;
imprimir(oportunidades,letraserror,palabra);
printf("\n\n\tEscriba una letra: ");scanf("%c",&letra);
existe=exist_word(letra);
}while(existe);//fin do while
acierto=found_word(letra);
if(acierto){
if(strcmp(palabra, cadena)!=0){game_over=FALSE; continue;}
else game_over=TRUE;
}//fin if.
else {
letraserror[cont++]=letra;
--oportunidades;
}//fin else.
}while(oportunidades>0&&game_over==FALSE);//fin do while.
system("cls");
if(game_over&&oportunidades>4){
imprimir(oportunidades,letraserror,palabra);
printf("\n\tEXCELENTE TRABAJO!");}//fin if.
else if(game_over&&oportunidades>2){
imprimir(oportunidades,letraserror,palabra);
printf("\n\tMUY BUEN TRABAJO!");}//fin else if.
else if(game_over){
imprimir(oportunidades,letraserror,palabra);
printf("\n\tHas ganado!!");}//fin else if.
else {
                 printf("\n\tESTAS AHORCADO!\n\n\t");
printf("\LA PALABRA ERA..");
         
for(i=0;i<strlen(cadena);i++) printf("%c",cadena[i]);
   printf("\t      _____");
printf("\n                                      |");
printf("\n                                      |  0");
printf("\n                                      | /|\\");
printf("\n                                      | / \\ ");
printf("\n                                      |\n");
printf("\n                                      |\n\n\n\n");     
}//fin else.
game_over=FALSE;
break;//fin case 1.
case 2: exit(0);break;//fin case 2.
}//fin switch.
fflush(stdin);
opc=menu();
}while(opc==1);
}
void imprimir(int oport, char *wordserr,char *word)
{  int i;
   printf("\n\n\t\t\t    Adivina la Palabra Oculta\n\n\n\t");
   if(oport<6){
printf("\n\n\t\007Letras erradas: ");
for(i=0;i<strlen(wordserr);i++) printf("%c ",wordserr[i]);
   }
   printf("\n\n\t");
   for(i=0;i<strlen(cadena);i++) printf("%c",word[i]);
   printf("\n\n\tChances= %d\n",oport);
}
int menu(void)
{     
int opcion;
printf("\n\n\n                       _______________________________________");
        printf("\t\t\t\t\t      |            (1). Jugar                 | \n ");
printf("\n\t\t      |            (2).Salir del juego        | \n ");
printf("\n\t \t      |     Elija una opcion para continuar:  |");
printf("                                   \t____________________________________");
     scanf("%d",&opcion);
     return(opcion);
   
}
int found_word(char letra)
{
int acierto=FALSE,i;
letra=toupper(letra);
for(i=0;i<strlen(cadena);i++){
if(letra==cadena[i]){
palabra[i]=letra;
acierto=TRUE;}
}
return(acierto);
}
int exist_word(char letra)
{
int existe=FALSE,i;
for(i=0;i<strlen(letraserror);i++){
if(letra==letraserror[i]) {
printf("\nYa la escribistes!.\n");
existe=TRUE;
system("pause");
}
}
return(existe);
}


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ayuda con juego el ahorcado en lenguaje c
« Respuesta #1 en: 26 Junio 2013, 04:29 am »

no sabia que eras de venezuela... bueno...
1- deja los errores que te da el codigo o en que te trancas
2- creo que lo pusiste en el subforo incorrecto (esto es hacking wireless XD)

un consejo para que tu codigo se vea bonito, usa etiquetas GeSHi (entre el menú para escribir post justo arriba de cambiar color de texto y colocalo como c++


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
KIDRAP1

Desconectado Desconectado

Mensajes: 24



Ver Perfil
Re: Ayuda con juego el ahorcado en lenguaje c
« Respuesta #2 en: 27 Junio 2013, 06:12 am »

ok
En línea

KIDRAP1

Desconectado Desconectado

Mensajes: 24



Ver Perfil
Re: Ayuda con juego el ahorcado en lenguaje c
« Respuesta #3 en: 27 Junio 2013, 06:14 am »

no tengo idea de como colocarlo como quiero, el programa en si no tiene ningun problema solo quiero agregarle que por cada error se valla escribiendo letra por letra la palabra ahorcado
En línea

satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Ayuda con juego el ahorcado en lenguaje c
« Respuesta #4 en: 27 Junio 2013, 13:24 pm »

Buenas!!

Una solución puede ser crearte una función que vaya imprimiendo el muñequito paso a paso, según el usuario vaya fallando, una cosa así:
Código
  1. void error(int i) {
  2.    switch(i) {
  3.        case 1:
  4.            printf("\n                                       _____ \t A");
  5.            break;
  6.        case 2:
  7.            printf("\n                                      |    | \t H");
  8.            break;
  9.        case 3:
  10.            printf("\n                                      |    0 \t O");
  11.            break;
  12.        case 4:
  13.            printf("\n                                      |   /|\\ \t R");
  14.            break;
  15.        case 5:
  16.            printf("\n                                      |   / \\ \t C");
  17.            break;
  18.        case 6:
  19.            printf("\n                                      | \t A");
  20.            break;
  21.        case 7:
  22.            printf("\n                                      | \t D");
  23.            break;
  24.        case 8:
  25.            printf("\n                                       --------  O\n\n\n\n\n");
  26.            break;
  27.    }
  28. }

Entonces ahora añades en tu función "imprimir", al final, esto:
Código
  1. for(i = 8; i >= oport; i--) {
  2.    error(8 - i);
  3. }

Y donde dibujas el muñequito, cambias todos los printf por:
Código
  1. for(i = 1; i <= 8; i++) {
  2.    error(i);
  3. }

Además tienes cosas como las llamadas a system que NO son estándar, deberías cambiarlo, por ejemplo puedes sustituir los
Código
  1. system("pause");
por
Código
  1. printf("Pulsa Enter para continuar...");

Además main debe devolver un int, que debe ser 0 si el programa finalizó correctamente.

Y fíjate que tienes un warning en
Código
  1. printf("\LA PALABRA ERA..");
por el \L. Borra la barra \

Y otra cosa, a veces utilizas un bucle for para imprimir palabras letra por letra, como por ejemplo en la función "imprimir"
Código
  1. for(i=0;i<strlen(cadena);i++) printf("%c",word[i]);
Puedes imprimir la palabra entera
Código
  1. printf("%s", word);

No sé si se me quedará algo.

Saludetes
En línea

Breakbeat como forma de vida
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
novato en C# juego del ahorcado
.NET (C#, VB.NET, ASP)
NeoXero 2 13,036 Último mensaje 30 Mayo 2007, 15:19 pm
por »~^~«CkNU!»~^~«
Juego Ahorcado v.1.1 [Bash]
Scripting
leogtz 6 8,797 Último mensaje 19 Mayo 2009, 18:18 pm
por Darioxhcx
Juego del ahorcado C#
.NET (C#, VB.NET, ASP)
treblatp 3 12,967 Último mensaje 3 Febrero 2011, 20:18 pm
por Khronos14
juego sencillo ahorcado
Java
bengy 1 28,094 Último mensaje 26 Octubre 2011, 07:31 am
por s00rk
Juego del Ahorcado
ASM
ziony 1 5,347 Último mensaje 27 Abril 2012, 21:52 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines