Skip to content
Enrique-MG edited this page May 29, 2020 · 12 revisions

Bienvenidos a la wiki de twE105_1920-los_chispas!!!!!

INTRODUCCIÓN

En este trabajo hemos querido realizar un banal homenaje a una consola que marcó la infancia de muchos de nosotros, la GAMEBOY, relazando un programa que te permite seleccionar uno de los siguientes juegos, el Ahorcado, uno modo de juego llamado Batalla(Basado en los juegos de Pokemon de esta consola), el Tres en raya y el Hundir la Flota. En un comienzo pensamos en preparar también un par de juegos extra que iban a ser el trivial y una aventura en la que podías ir seleccionando opciones para avanzar en una historia. Por desgracia a causa de factores ajenos a nuestro control tuvimos que suprimir esos dos juegos extra por falta de tiempo.

Para comenzar con el programa hemos usado un archivo .c llamado principal dentro de la carpeta proyecto desde donde llamamos a los distintos juegos utilizando distintas librerías para cada juego y de este modo hacer más ordenado y legible nuestro código principal.

#include "ahorcadolib.h"
#include "batallalib.h"
#include "rayalib.h"

LOS JUEGOS

En nuestro grupo cada uno ha sido responsable de realizar uno de los cuatro juegos Pablo se encargó del Tres en raya, David del Batalla, Enrique del Hundir la Flota y Javier del Ahorcado. Los juegos se prepararon de forma independiente y una vez terminados los adaptamos para meterlos en las librerías.

Para comenzar a jugar tan solo debes seguir las instrucciones de la pantalla y escoger un juego para poder continuar acto seguido comenzará tu pequeña aventura.

  • 1)El Ahorcado. Para el Ahorcado utilizamos 5 funciones además del main, una función para el número aleatorio, una función juego entorno a la que giran las demás funciones, una función que se encarga del ahorcado en si, una función para dibujar el ahorcado y la ultima para guardar las puntuaciones en fichero llamado puntuacion_ahorcado.txt, en dicho fichero se guardará un nombre o apodo y la puntuación que hayas conseguido, que se guardara a menos que se borre en el .txt directamente, de esta forma podrás competir con tus amigos o contigo mismo parra ver quien es más rápido e ir mejorando tus marcas.
int numaleatorio(int n);//1
void juego(char adivinapalabra[D], char cadena[D]);//2
int ahorcado(char adivinapalabra[D], char cadena[D]);//3
int imp_ahorcado(int intentos);//4
void Puntuaciones(usuario lista_punt[F],FILE *leer);//5

Hablando propiamente del juego encontramos tres categorías de entre las cuales hay una serie de opciones de cadenas a seleccionar aleatoriamente gracias a la función int numaleatorio(int n), dichas categorías son películas, series y equipos de fútbol. Una vez seleccionada la categoría comienza el juego. Tienes hasta 7 intentos para ir seleccionando las letras que componen la respuesta. La puntuación que obtengas dependerá de el tiempo en el que logres resolverlo. Has elegido la categoria de Peliculas

_ _ _   _ _ _ _ _ _ _ _ _ _     Te quedan 7 intentos

 _______
/        |
|
|
|
|
|
|__

        Llevas seleccionadas las siguientes letras:

        Introduce nueva letra
  • 2)Batalla

Este trabajo se basa en la idea de los juegos de Pokemon pero un poco mas simplificada.

int multiplicador_tipo(int tipo_rival, int tipo_atq);
int acierto(int prob, int valor_aleatorio, int dano);
int critico(int valor_critico);
int dano_ataque_rival(int ataque_aleatorio, int prob1, int prob2, int prob3, int prob4, int valor_aleatorio, int ataque1, int ataque2, int ataque3, int ataque4, int valor_critico);

Como se puede ver se usan 4 funciones una para el combate, la primera función multiplicador_tipo sirve para saber cuanto daño hace según el tipo del rival, hay 3 tipos agua, fuego y planta, el tipo agua hace mas daño al fuego y no hace daño al planta y hace daño normal al agua, lo mismo con los otros dos tipos. La función acierto sirve para comprobar si impacta el ataque ya que todos los ataques tienen probabilidad de fallar, los ataques también pueden hacer daño critico, básicamente es una pequeña probabilidad de hacer el doble de daño, la última función sirve para generar un ataque aleatorio que efectuará el enemigo.

  • 3)Tres en raya. En concreto, para este juego hemos usado seis funciones. La primera "fun" es usada para "llamar" al resto de funciones.La siguiente,"casillas" es la encargada de mostrar sobre la pantalla "introduce una ficha" y también de avisarnos de si ya hay una ficha puesta donde nosotros habíamos querido ponerla previamente, permitiéndonos volver a poner otra. La función de "rival" es poner fichas de forma aleatoria para simular que jugamos contra otro oponente."Dib" será la que dibuje el tablero en el que jugaremos al 3 en raya.Y finalmente La función "final" será la que permita al programa saber cuando termina la partida, ya sea porque hemos ganado, perdido o empatado.
void fun (char tab[3][3]);
void Prim (char tab[3][3]);
void dib (char tab[3][3]);
void Casillas (char tab[3][3]);
void rival (char tab[3][3]);
int final (char tab[3][3]);

En cuanto al juego, tiene las mismas instrucciones y normas que el tradicional 3 en raya, de manera que nos iremos alternando con nuestro oponente virtual para intentar ser el primero que consiga tener sus tres fichas de forma consecutiva en el tablero y así ganar la partida. Siendo as "X" nuestras fichas y las "O" las de nuestro rival.

  • 4)Hundir la flota Este es el clásico adaptado a una versión en c, dispone de 9 funciones en las que el destacan la de colocar los barcos por parte del jugador, junto a la colocación aleatoria por parte de la CPU de los barcos gracias a la generación de números aleatorios en las casillas del tablero. Tambien encontramos otra como la funcion que detecta el formato de coordenadas y lo transforma en su homonimo en el tablero
int printmapa1(int map[nf][nc]); 
int printmapac(int map[nf][nc]); 
int ponerbarcosAlm(int fililla1, int fililla2, int columnilla1, int columnilla2, int map[nf][nc], int l);
int ponerbarcosCPU(int l, int map[nf][nc], int tipo);
int ataqueCPU(); //Disparos de la CPU
int ataqueAlm(); //Disparos del jugador
int infcasilla(char casilla[2]); 
int letafil(char casi[2]);
int numacol(char casi[2]);

Desgraciadamente aunque compila el juego debido a fallo por parte mio y aunque he buscado por todo el código, no he conseguido que funcione correctamente debido a un problema con la generación aleatoria.

Clone this wiki locally