Juego del ahorcado animales C
Dev - C++
Publicado el 10 de Julio del 2019 por Jesus Maria
5.049 visualizaciones desde el 10 de Julio del 2019
Juego del ahorcado con 30 animales programado en C.
/*Juego del ahorcado con animales*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#include <windows.h>
#include <time.h>
#define NUMERO_ANIMALES 30
main(){
/*Declaramos los animales a acertar*/
char *animales[NUMERO_ANIMALES] =
{"perro","gato","raton","tortuga","lechuza","mono","leon","tigre","loro","murcielago",
"mariquita","halcon","rata","rana","jirafa","delfin","ballena","foca","serpiente","ciervo",
"escarabajo","mariposa","gusano","toro","cebra","aguila","avestruz","vaca","oveja","cabra",};
char *ahorcado0[7]={
" +----+ ",
" | | ",
" o | ",
" /|/ | ",
" / / | ",
" | ",
" ============",};
char *ahorcado1[7]={
" +----+ ",
" | | ",
" o | ",
" /|/ | ",
" / | ",
" | ",
" ============",};
char *ahorcado2[7]={
" +----+ ",
" | | ",
" o | ",
" /|/ | ",
" | ",
" | ",
" ============",};
char *ahorcado3[7]={
" +----+ ",
" | | ",
" o | ",
" /| | ",
" | ",
" | ",
" ============",};
char *ahorcado4[7]={
" +----+ ",
" | | ",
" o | ",
" | | ",
" | ",
" | ",
" ============",};
char *ahorcado5[7]={
" +----+ ",
" | | ",
" o | ",
" | ",
" | ",
" | ",
" ============",};
char *ahorcado6[7]={
" +----+ ",
" | | ",
" | ",
" | ",
" | ",
" | ",
" ============",};
char caracter_adecuado[50]="abcdefghijklmnopqrstuvwxyz";
char palabra_dinamica[50]; /*palabra que va cambiando en funcion de los aciertos*/
char palabra_oculta[50]; /*palabra que habrá que adivinar en cada partida*/
char caracter_introducido[50]; /*caracter introducido por usuario*/
char respuesta[3];
bool continuar=true; /*Bandera para saber si continuará jugando*/
bool primera_partida=true; /*Saber si es la primera vez que juega*/
bool caracter_correcto=false; /*Bandera para saber si el caracter introducido es correcto*/
bool size_adecuado=false; /*Bandera para saber si el numero de caracteres introducidos es correcto*/
bool fin_for_comprobar_caracteres=false; /*Bandera para finalizar for si un caracter no es valido*/
bool acierto=false; /*Bandera para saber si ha acertado o no*/
bool respuesta_juego=false; /*Bandera para saber si el jugador desea jugar de nuevo*/
bool fin=true; /*Bandera que indica si el jugador ha acertado la palabra completa*/
int numero; /*numero aleatorio para elegir palabra a adivinar*/
int numero_caracteres; /*Numero de caracteres de la palabra a adivinar*/
int i; /*Contador para los diferentes for*/
int fallos; /*Numero de fallos del jugador*/
srand(time(NULL)); /*Utilizar reloj de ordenador para generar numero aleatorio*/
printf("Vamos a jugar al ahorcado con animales y siempre introduciendo letras en minusculas!\n");
printf("La palabra que debe adivinar es...\n");
while(continuar==true){
fallos=0;
respuesta_juego=false;
numero = (rand() % NUMERO_ANIMALES); /*Numero aleatorio del 0 al 9*/
strcpy(palabra_oculta,animales[numero]);
numero_caracteres=strlen(palabra_oculta);
if(primera_partida==false){
printf("¡Juguemos de nuevo! -> La palabra que debe adivinar es... \n");
}
for(i=0;i<numero_caracteres;i++){
palabra_dinamica[i]='-';
}
palabra_dinamica[i]='\0';
printf("%s\n",palabra_dinamica);
while(caracter_correcto==false){
fin=true;
switch(fallos){
case 0:
for(i=0;i<7;i++){
printf("%s\n",ahorcado6[i]);
}
break;
case 1:
for(i=0;i<7;i++){
printf("%s\n",ahorcado5[i]);
}
break;
case 2:
for(i=0;i<7;i++){
printf("%s\n",ahorcado4[i]);
}
break;
case 3:
for(i=0;i<7;i++){
printf("%s\n",ahorcado3[i]);
}
break;
case 4:
for(i=0;i<7;i++){
printf("%s\n",ahorcado2[i]);
}
break;
case 5:
for(i=0;i<7;i++){
printf("%s\n",ahorcado1[i]);
}
break;
}
printf("Introduzca una unica letra en minusculas: \n");
gets(caracter_introducido);
if(strlen(caracter_introducido)==1){
for(i=0;i<strlen(caracter_adecuado) && fin_for_comprobar_caracteres==false;i++){
if(caracter_introducido[0]==caracter_adecuado[i]){
caracter_correcto=true;
fin_for_comprobar_caracteres=true;
printf("El caracter introducido tiene sentido...\n");
}
}
}
else{
printf("El texto introducido no tiene sentido porque hay mas de un caracter!\n");
caracter_correcto=false;
}
if(caracter_correcto==true){
caracter_correcto=false;
fin_for_comprobar_caracteres=false;
for(i=0;i<numero_caracteres;i++){
if(caracter_introducido[0]==palabra_oculta[i]){
acierto=true;
palabra_dinamica[i]=palabra_oculta[i];
}
}
if(acierto==true){
printf("Ha acertado!\n");
printf("La palabra que debe adivinar es:%s \n",palabra_dinamica);
acierto=false;
}
else{
printf("No has acertado...\n");
fallos++;
if (fallos<6){
printf("Sigue jugando pero el numero de fallos es ahora: %d\n",fallos);
printf("La palabra que debe adivinar es:%s \n",palabra_dinamica);
}
if(fallos==6){
for(i=0;i<7;i++){
printf("%s\n",ahorcado0[i]);
}
printf("Ya no hay mas intentos, lo sentimos...\n");
}
}
}
else if(caracter_correcto==false && strlen(caracter_introducido)==1){
printf("El texto introducido no tiene sentido porque no es una letra minuscula!\n");
}
if(fallos<6){
for(i=0;i<numero_caracteres;i++){
if(palabra_dinamica[i]=='-'){
fin=false;
}
}
}
if(fin==true){
caracter_correcto=true;
}
}
if(fallos<3) printf("Has ganado campeon!\n");
while(respuesta_juego==false){
printf("Te gustaria jugar de nuevo? Responde: SI o NO - > ");
gets(respuesta);
if(!strcmp(respuesta,"NO")){
printf("FIN DEL JUEGO, ESPERAMOS VOLVER A VERTE");
continuar=false;
respuesta_juego=true;
}
else if(!strcmp(respuesta,"SI")){
printf("La nueva palabra que debe adivinar es...\n");
respuesta_juego=true;
strcpy(palabra_dinamica,"\0");
strcpy(palabra_oculta,"\0");
printf("Palabra dinamica es: %s\n",palabra_dinamica);
fin=true;
caracter_correcto=false;
}
else{
printf("Te pasaste de gracioso con tu respuesta...\n");
}
}
}
}
Comentarios sobre la versión: 1.0 (0)
No hay comentarios