AHORCADO WIKI - aigora/twIQ_2021-ahorcado-1 GitHub Wiki

AHORCADO

CONTENIDO DEL TRABAJO

La idea inicial del proyecto se basaba en el juego popular del ahorcado. Decidimos hacer dos modos:

  • El modo solitario, que se jugaría de forma que el jugador se tendría que registrar y después el propio juego proporcionaría las palabras, que estarían almacenadas en un fichero. Más adelante, decidimos que habría tres niveles distintos y las palabras se escogerían de manera aleatoria (tres palabras por cada nivel, haciendo un total de nueve palabras). Además añadimos que cada palabra, tenga una pista para hacer que sea más posible adivinar la palabra.
  • En el modo equipos cambiamos la manera de jugar y esta vez serán los propios jugadores quienes elijan las palabras que su rival tendrá que adivinar. Después de trabajar en ello añadimos que cada equipo va sumando puntos, hasta que al final hay un ganador

De manera general, añadimos a las dos formas de juego una serie de mejoras:

  • Cuando fallas una letra se va creando el dibujo típico del ahorcado (cabeza, cuerpo, brazos...) hasta tener como máximo ocho fallos. Además las letras que vas fallando salen debajo del dibujo tras la frase "letras falladas".
    • Al acertar una letra se va sumando el número de letras acertadas y si repites una letra que ya está puesta, te saltará un mensaje que dice "ya has puesto esa letra".
      • También hemos hecho que el programa emita un sonido cuando pierdes, acompañado del mensaje "GAME OVER".

GUÍA DE USO

MENÚ

El menú comienza dando dos opciones:

A-Jugar

B-Salir del juego

Al pulsar A, el programa le dará la bienvenida al usuario y mostrará por pantalla los diversos modo de juego:

A-Solitario: juego entre la computadora y el usuario.

B-En equipo: juego entre dos equipos que compiten entre ellos.

EN SOLITARIO

Una vez el usuario haya elegido la opción jugar en solitario (A):

  1. El usuario debe introducir su nombre:

  1. A continuación se empieza a jugar. Te aparece una pista sobre la palabra y te pide que introduzcas una letra.

  • Introduces la letra y te aparecerá esto si aciertas:

  • En el caso anterior se acertó la letra y te aparece en numero de aciertos y la letra en la palabra. Si fallamos una se empieza a dibujar el muñeco (creado mediante la función void dibujo(int fallos). También aparece la cantidad de oportunidades que te quedan y debajo la letra que has fallado.

  • Si se sigue fallando:

  • Se vuelve a acertar:

  • Y así sucesivamente hasta que pierdes o ganas. Si fallas todas te aparecerá "game over" y pasarás a la siguiente palabra:

  • Adivinando la palabra, te felicitan y continuas. En esta imagen también aparece como cuando repites una palabra, se te recuerda.

En total hay que adivinar 9 palabras. Por cada tres va aumentando el nivel de dificultad, lo cual se indica con el nivel.

  • Nivel 1(Fácil)
  • Nivel 2(Intermedio)
  • Nivel 3 (Difícil)

Por cada palabra adivinada, se sumaran puntos y tu resultado se mostrará al final. Las del nivel uno valen 5 puntos, las del nivel dos 10 puntos y las del nivel tres 15 puntos.

EN EQUIPO

Una vez el usuario elija la opción de jugar en equipo (B):

Aparecerán dos opciones:

A-Instrucciones: mostrará el funcionamiento del modo equipos y los pasos a seguir.

B-Empezar: comenzará la partida

  1. Cada equipo tendrá que introducir su nombre:

  1. El primer equipo introducirá una palabra, la cual debe adivinar el equipo 2.

A continuación empieza la partida del equipo 2

  • Irán introduciendo letras:

  • Hasta que acierten alguna letra contenida en la palabra, donde los aciertos irán sumándose.

  • O a su vez falle, es decir introduzca letras que no pertenecen a la palabra, donde las oportunidades irán restándose.

  • Estas letras falladas se van guardando y mostrándose al jugador.

  • Cuando el equipo acierte la palabra entera, el programa les felicitará mostrando el siguiente mensaje por pantalla:

  • Al contrario cuando agoten las 8 oportunidades, la ronda acabará:

Esto se repetirá para el equipo 1, donde el equipo 2 será quien les escriba su palabra a adivinar.

Al final de las 3 rondas, cuando acabe el juego, se mostrará los puntos obtenidos por cada equipo.

  • Valiendo cada palabra adivinada 10 puntos:

FICHERO

Tenemos un fichero de entrada en el cual aparece la palabra, un número (su nivel), otro número(su valor) y su pista:

En el código, hemos hecho la función char lecturapalabras(strcut datos palabras[]) para la llamada del fichero.

Se utiliza al principio del código:

DIAGRAMA DE FLUJO

EXTRAS

Hemos añadido algunos recursos extras para mejorar nuestro programa:

  • Colores y cambio de color

Con la función system ("COLOR XY") hemos cambiado el color de la consola y de la letra , donde X es el color del fondo e Y el color de la letra. Para el cambio de color hemos utilizado system ("PAUSE") con esta función pasa de un color a otro.

  • Sonido

Con un \a cuando alguien falle una palabra y a su vez se le agoten las oportunidades que tiene para adivinarla el programa emitirá un sonido para avisar al usuario. printf("GAME OVER\a\n")

  • Limpiar la consola

Hemos utilizado system("cls") para hacer una limpieza en la consola, es decir, borrar lo anterior, esto ayudará al usuario a tener todo más organizado y que no le cause ninguna confusión.

  • Aleatorio

Para que las palabras a adivinar,que estan dentro del fichero ,aparezcan de forma aleatoria en cada nivel hemos utilizado: Declarando como variable srand(time(NULL));

 if (i<3)  aleatorio = (int)rand()%20;
 else if (i<6)  aleatorio =(int)20+rand()%20;
 else aleatorio =(int)40+rand()%20;