hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
12 de Octubre de 2008, 08:53:26
Noticias: Participa en el batch lab de CPH
Para ver este enlace Registrate o Inicia Sesion
aqui

+  Foros pOrtal Hacker
|-+  Programacion
| |-+  C / C++
| | |-+  Código Abierto (Moderadores: mycrox, TxShAcK)
| | | |-+  Ahorcado (El juego)
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Ahorcado (El juego)  (Leído 337 veces)
Grib_Jr.
NZ2
**
Desconectado Desconectado

Mensajes: 153


Querer es poder


Ver Perfil
« : 05 de Marzo de 2008, 10:12:21 »

Ahorcado
Bueno cree un juego tipo ahorcado, el code es desordenado pero yo me entiendo... se le pueden ir agregando palabras en la variable "Palabras" pero yo deje 65 que fueron las q me llegaron a la cabeza. admite palabras de hasta 12 letras, tambien tiene el tipico tipo ahorcandose que pierde extremidades cuando te equivocas



EDITs:
 - Se han agregado 10 palabras
 - +25 palabras, 100 en total
 - corregido pequeño error en el mensaje de cuando pierdes
 - agregado puntaje
 - ahorcado salio ileso = +500 puntos
 - cada 1000 puntos un ahorcado doble resistente
 - una ves obtenido un ahorcado D.R. se obtiene otro con +1600
 - agregado un resalto de color para saber que se ha ganado algo
 - aparicion mistica de simbolos ")%·"!!]$·" eliminada
 - "trampa" de asertar una letra, si se pone despues la misma son 20p mas, eliminada
 - aumento de puntos requeridos para D.R, para darle balanze al juego
 - agregado que si marcas dos veces la letra, no se repite en el pozo



Code:
Código:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#include<ctype.h>
#include<string.h>

#define USADO 1
#define LIBRE 0

//   J U E G O             E L    A H O R C A D O  (por GRIB JR.)


int MostrarPozo(char* Cadena, int N)
{   
     int i, asd=0;
     printf("\n\n\n\n\tPozo:\n\t");
     textcolor( BLUE );
     for(i=0;i<N;i++)
     {
     if(Cadena[i]!= ' ')
     printf("%c ", Cadena[i]);
     else
     asd++;       
     }
     textcolor( BLACK );
     
}
void MostrarAutor()
     {
     gotoxy(1,24);
     textcolor( LIGHTGRAY );
     printf("\t\t\t\t\t\t\t       Por Grib Jr");
     textcolor( BLACK );           
     }
                                                                           
int MostrarAhorcado(int Vida)                                               //   ____
{                                                                           //  |   o
     char PV= 179, PC= 218, PH= 196, PT= 194;                               //  |  /|\
                                                                            //  |  / \
     
     textcolor( LIGHTBLUE );
     if(Vida==10)
     { /* COLOR              ESCRITO              COLOR 2          ESCRITO 2 */   
     textcolor( RED ); printf("\n\n\n\t%c%c%c%c\n", PC,PH,PH,PT); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); printf("  o\n");
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); printf(" /%c\\\n", PV);
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); printf(" / "); textcolor( RED ); printf("\\\n"); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE );   
     }
     if(Vida==9)
     {
     textcolor( RED ); printf("\n\n\n\t%c%c%c%c\n", PC,PH,PH,PT); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); printf("  o\n");
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); printf(" /%c\\\n", PV);
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); textcolor( RED ); printf(" / \\\n"); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE );
     }
     if(Vida==8)
     {
     textcolor( RED ); printf("\n\n\n\t%c%c%c%c\n", PC,PH,PH,PT); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); printf("  o\n");
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); printf(" /%c", PV); textcolor( RED ); printf("\\\n"); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); textcolor( RED ); printf(" / \\\n"); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE );
     }
     if(Vida==7)
     {
     textcolor( RED ); printf("\n\n\n\t%c%c%c%c\n", PC,PH,PH,PT); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); printf("  o\n");
     textcolor( RED ); printf("\t%c",PV); printf(" /", PV); textcolor( LIGHTBLUE ); printf("%c", PV) ;textcolor( RED ); printf("\\\n"); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); textcolor( RED ); printf(" / \\\n"); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE );
     }
     if(Vida==6)
     {
     textcolor( RED ); printf("\n\n\n\t%c%c%c%c\n", PC,PH,PH,PT); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); printf("  o\n");
     textcolor( RED ); printf("\t%c",PV); printf(" /%c\\\n", PV); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); textcolor( RED ); printf(" / \\\n"); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE );
     }
     if(Vida==11)                                                           
     {
     textcolor( RED ); printf("\n\n\n\t%c%c%c%c\n", PC,PH,PH,PT); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); printf("  o\n");
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); printf(" /%c\\\n", PV);
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE ); printf(" / \\\n"); textcolor( LIGHTBLUE );
     textcolor( RED ); printf("\t%c",PV); textcolor( LIGHTBLUE );
     }   
     textcolor( RED );
     if(Vida==4)
     {
     printf("\n\n\n\t%c%c%c%c\n", PC,PH,PH,PT);
     printf("\t%c  o\n", PV);
     printf("\t%c /%c\\\n", PV, PV);
     printf("\t%c /\n", PV);
     printf("\t%c", PV);   
     }
     if(Vida==3)
     {
     printf("\n\n\n\t%c%c%c%c\n", PC,PH,PH,PT);
     printf("\t%c  o\n", PV);
     printf("\t%c /%c\\\n", PV, PV);
     printf("\t%c\n", PV);
     printf("\t%c", PV);
     }
     if(Vida==2)
     {
     printf("\n\n\n\t%c%c%c%c\n", PC,PH,PH,PT);
     printf("\t%c  o\n", PV);
     printf("\t%c /%c\n", PV, PV);
     printf("\t%c\n", PV);
     printf("\t%c", PV);
     }
     if(Vida==1)
     {
     printf("\n\n\n\t%c%c%c%c\n", PC,PH,PH,PT);
     printf("\t%c  o\n", PV);
     printf("\t%c  %c\n", PV, PV);
     printf("\t%c\n", PV);
     printf("\t%c", PV);
     }
     if(Vida<=0)
     {
     printf("\n\n\n\t%c%c%c%c\n", PC,PH,PH,PT);
     printf("\t%c  o\n", PV);
     printf("\t%c\n", PV, PV);
     printf("\t%c\n", PV);
     printf("\t%c ", PV);
     }
     if(Vida==5)                                                           
     {
     printf("\n\n\n\t%c%c%c%c\n", PC,PH,PH,PT);
     printf("\t%c  o\n", PV);
     printf("\t%c /%c\\\n", PV, PV);
     printf("\t%c / \\\n", PV);
     printf("\t%c", PV);
     }
     if(Vida<=-1)
     {return 1;}
     
     return 0;
                                                 
}


//                                  I N I C I O    M A I N
int main()
{   
    int Points=0,WLIFE=1200,GaOv=0;
    START:
    if(GaOv==1)
    {   
    Points=0;
    WLIFE=1200;
    GaOv=0;
    }
    char Palabras[100][14]=
{   "lechugas     ", "chocapic     ", "alimento     ", "acoplado     ", "auxiliar     ", //1
    "avaricia     ", "langosta     ", "soldados     ", "monarcas     ", "maldecir     ", //2
    "motociclista ", "movilizacion ", "santificador ", "ejercitacion ", "incapasitado ", //3
    "laboriosidad ", "legalizacion ", "nacionalidad ", "calculatorio ", "cardiografia ", //4
    "besuqueadora ", "bibliografia ", "comer        ", "aparente     ", "fechoria     ", //5
    "bienhaciente ", "bienviviente ", "billaristico ", "bizantinismo ", "orientar     ", //6
    "cebolla      ", "repollo      ", "carne        ", "aminoacidos  ", "sopaipilla   ", //7
    "citofono     ", "manguera     ", "vacuno       ", "television   ", "basura       ", //8
    "antipatico   ", "animal       ", "elefante     ", "dinosaurio   ", "programar    ", //9
    "ahorcado     ", "queso        ", "tomate       ", "vacaciones   ", "amistad      ", //10
    "estupidez    ", "verde        ", "amarillo     ", "pelicano     ", "enigma       ", //11
    "aleacion     ", "patogenico   ", "huevon       ", "emparedado   ", "ortografia   ", //12
    "marihuana    ", "bebida       ", "idiolatria   ", "carabinero   ", "hormiga      ", //13
    "Array        ", "Retorno      ", "Herida       ", "ventana      ", "cuchara      ", //14
    "ganador      ", "protector    ", "contorno     ", "ayudenme     ", "tararear     ", //15
    "lombriz      ", "misil        ", "Silo         ", "nuclear      ", "radioactivo  ", //16
    "teclado      ", "empanada     ", "pepino       ", "austral      ", "poderoso     ", //17
    "elogiar      ", "estampilla   ", "analogo      ", "control      ", "consola      ", //18
    "mensaje      ", "modificar    ", "lineas       ", "insertar     ", "compilador   ", //19
    "resultado    ", "depurar      ", "observar     ", "pulsera      ", "religion     "};//20
                           
    // SE PUEDE IR AGRANDANDO PERO POR AHORA LO DEJARE ASI, OTRO DIA LO AGRANDARE
   
    int Comprobar[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0 };       
    char Palabra[14]="_____________", Guionbajo[14] = "_____________";
    char Al_Agua[30]="                             ", letra, AA;
    int Array, i, Vida, Retorno, A, Herida, auxiliar, o=0;
   
    system("color f0");
    _setcursortype(_NOCURSOR);
    srand(GetTickCount());
    Array = rand()%100;
    for(i=0;i<14;i++)
    if(Palabras[Array][i]!=' ')
    Palabra[i]=Palabras[Array][i];
    if(Vida <= 5||Vida>=12)
    Vida=5;
   
    A=0; Herida=0;
   
    HERE: //////////////////////////
    textcolor( RED );
    printf("\n\t\t   \"El Ahorcado\"\t\t\t\t");
    textcolor( BLACK );
    printf("Puntaje: ");
    textcolor( BLUE );
    printf("%i", Points);
    textcolor( LIGHTBLUE);
    Retorno = MostrarAhorcado(Vida);
    textcolor( BLACK );
    gotoxy(20,8);
    for(i=0;i<=13;i++)
    {
   
    Palabra[i] = toupper(Palabra[i]);
    if(Palabra[i]!= '_')
    {
    printf("%c ", Guionbajo[i]);
}

    }
    MostrarPozo(Al_Agua,A);
    if(Retorno==1)
    {
    system("cls");         
    textcolor( RED );
    printf("\n\n\tLo siento, el Ahorcado ha muerto...\n\tLa Palabra era ");
    GaOv=1;
    i=0;
    while(Palabra[i]!='_')
    {   
    printf("%c", Palabra[i]);   
    i++;
    }
    printf("\n\n\tTeclee ENTER para volver a jugar...");
    system("pause>NULL");
    system("cls");
    goto START;
    }
    if(0 == strcmp(Palabra,Guionbajo))
    {   
         Points+=100;
         textcolor ( GREEN );
         printf("\n\n Felicitaciones, el Ahorcado ha sobrevivido!!");
         if(Vida==5||Vida==11)
         {
         textcolor( LIGHTGREEN);
         printf("\n Y ha salido ileso!! +500 puntos!!");
         o=1;
         }
         if(Points>=WLIFE && Vida<=5)
         {
         auxiliar=0;
         textcolor( BLUE);
         printf("\n\n Tienes mas de %i puntos, por lo que has ganado:\n   ...", WLIFE);
         _sleep(4000);
         for(i=0;i<=51;i++)
         {
         gotoxy(1,19);
         if(auxiliar==0)
         {
         textbackground (LIGHTBLUE);
         textcolor( WHITE);
         auxiliar=1;
         }
         else
         {
         textbackground (WHITE);
         textcolor( LIGHTBLUE );
         auxiliar=0;
         }
         printf(" -Un Ahorcado con doble vida !!");
         _sleep(60);
         }
         WLIFE+=1800;
         Vida=11;
         
         }         
         if(o==1)
         {
         Points+=500;
         o=0;
         }
         textcolor( GREEN);         
         
    printf("\n\n     Teclee ENTER para continuar...");
    system("pause>NULL");
    system("cls");
    goto START;
    }
    MostrarAutor();
    gotoxy(10,12);
    printf("\n\n\n\tIngrese Letra: ");
    scanf("%s", &AA);
   
    AA = toupper(AA);
    Herida=15;
   
    for(i=0;i<30;i++)
    {
    Al_Agua[A]=AA;
   
    if(AA==Al_Agua[i] && i!=A)
    {
    AA=' ';
    }
    Al_Agua[A]=AA;
    }
   
    if(AA==' ')
    Vida++;
   
    for(i=0;i<=14;i++)
    {       
    if(AA==Palabra[i])
      {     
      if(Comprobar[i]==LIBRE)
      {       
      Guionbajo[i] = Palabra[i];
      Points+=20;
      Comprobar[i] = USADO;
      }
           
      }
    else
      {
      Herida--;
      }
    if(Herida==0)
    {
    Vida--;
    }
}
    A++;
    system("cls");
    goto HERE;
    getch();
   
   
   
}                       
                       
 
                 
 

Cualquier error en la funcion del juego me avisan >.<
« Última modificación: 15 de Marzo de 2008, 02:26:45 por Grib_Jr. » En línea


mycrox
Moderador
*****
Desconectado Desconectado

Mensajes: 597


"Católico Apostólico Romano. Seguidor de Cristo"


Ver Perfil
« Respuesta #1 : 05 de Marzo de 2008, 03:22:06 »

Lo compilaste en el DevC++??
En línea

Deseas aprender a programar de verdad??
Haz click
Para ver este enlace Registrate o Inicia Sesion
Aqui

Grib_Jr.
NZ2
**
Desconectado Desconectado

Mensajes: 153


Querer es poder


Ver Perfil
« Respuesta #2 : 05 de Marzo de 2008, 05:15:41 »

si, lo copile en dev c++
justo ahora modifique el post anterior, pq el codigo tenia un error, muy pequeño pero ya fue solucionado

edito para no hacer doble post:
tengo un problema que si provaron el programa sale facilmente a la vista, intento conseguir que en el pozo solo salga la letra q tecleaste 1 vez,  y si la vuelves a teclear no se imprima de nuevo en el pozo...

tambien tengo otro problema, q he intentado solucionar pero no puedo, es q por cada letra que asiertas te da 20 puntos, pero si por ejemplo tecleaste A y le asertaste, si le sigues dando A, sigues ganando puntos injustamente

porfavor si alguien tiene tiempo, hecheme una manito  Undecided
« Última modificación: 06 de Marzo de 2008, 03:00:53 por Grib_Jr. » En línea


mycrox
Moderador
*****
Desconectado Desconectado

Mensajes: 597


"Católico Apostólico Romano. Seguidor de Cristo"


Ver Perfil
« Respuesta #3 : 08 de Marzo de 2008, 08:43:41 »

si, lo copile en dev c++
justo ahora modifique el post anterior, pq el codigo tenia un error, muy pequeño pero ya fue solucionado

edito para no hacer doble post:
tengo un problema que si provaron el programa sale facilmente a la vista, intento conseguir que en el pozo solo salga la letra q tecleaste 1 vez,  y si la vuelves a teclear no se imprima de nuevo en el pozo...

tambien tengo otro problema, q he intentado solucionar pero no puedo, es q por cada letra que asiertas te da 20 puntos, pero si por ejemplo tecleaste A y le asertaste, si le sigues dando A, sigues ganando puntos injustamente

porfavor si alguien tiene tiempo, hecheme una manito  Undecided

ahora estoy en la casa de mi novia, dejame ver tu code tranquilamente y te respondo...

eso si, tu programas con goto, yo no acostumbro a eso ya que rompe la programacion estructurada,  veremos que hacemos.

saludos.
En línea

Deseas aprender a programar de verdad??
Haz click
Para ver este enlace Registrate o Inicia Sesion
Aqui

Grib_Jr.
NZ2
**
Desconectado Desconectado

Mensajes: 153


Querer es poder


Ver Perfil
« Respuesta #4 : 08 de Marzo de 2008, 11:27:40 »

si, pero esq no encuentro modo de evitar usarlo   Undecided
En línea


Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online