Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Universidad de La Frontera
- * Ingeniería Civil Electrónica
- *
- * ICC-202 PROGRAMACION DE COMPUTADORES
- *
- * Tarea 2
- *
- * Autores: Cristian Pinoleo Jara. (c.pinoleo01@ufromail.cl)
- * Max Cortés Torres. (m.cortes09@ufromail.cl)
- *
- * Fecha: 26 de Enero, 2020
- *
- * El programa main integra tres juegos previamente diseñados por los estudiantes del curso de Programación de Computadores
- * en distintas ocasiones, "Conecta 4", "Gato" y "Toque y Fama". El programa provee un menú interactivo en donde el usuario tiene la opción
- * de escoger entre los tres juegos y, además, se le ofrece una cuarta opción, salir, que automáticamente cierra el menú por completo.
- *
- * El primer juego disponible es llamado "Conecta 4". En este juego participan dos jugadores, a cada uno se le asigna una ficha de un color distinto,
- * y luego, entre ellos, deben llenar cuatro espacios con sus respectivas fichas, formando una línea en el tablero de siete por séis espacios. La línea puede ser vertical, horizontal o diagonal,
- * el jugador que obtenga el "cuatro en línea" primero, ganará la partida.
- *
- * El segundo juego es llamado "Gato". En este, al igual que Conecta 4, parcitipan dos jugadores, a cada uno se le asigna un símbolo distinto,
- * cada jugador debe llenar tres espacios seguidos, sean estos horizontal, vertical o diagonalmente. El primer juegador en completar esta tarea, ganará la partida.
- *
- * El tercer y último juego es llamado "Toque y Fama". Por lo general es jugado entre dos o más participantes, pero en el caso de este programa, participa solamente el usuario
- * y el computador. El juego consiste en que el usuario escoge una dificultad, que varía entre dos y cinco, siendo esta la cantidad de dígitos que tienen los números incógnitos que
- * cada contrincante debe adivinar, es decir, tanto el usuario como el computador deben pensar (o generar, en el caso del computador), un número de una cantidad de dígitos equivalentes
- * a la dificultad elegida por el usuario, estos dígitos no deben repetirse. El usuario y el computador deben entonces "adivinar" los números del otro, por cada turno un paricipante
- * entrega un dígito y una posición. Si no acierta ningún dato, se cambia de turno; si acierta en el dígito, se le agrega un "toque" al jugador y se cambia de turno, y si acierta en el dígito y
- * posición, se le agrega una "fama" al jugador, y se cambia de turno. El jugador que logre obtener la máxima cantidad de famas ganará el juego, indicando esto que le acertó a todos los dígitos y sus posiciones.
- */
- #include<stdio.h>
- #include<stdlib.h>
- #include<cstdlib>
- #include<time.h> //declaración de librerías usadas por las distintas funciones de las librerías de juegos
- #include"conecta4.h"
- #include"juegoGato.h"
- #include"toqueYFama.h" //declaración de librerías que continen las funciones usadas en el programa main
- static int dificultad = 0;
- static int toqueUsuario, famaUsuario, toquePC, famaPC;
- static int numeroPC, posicionPC, numeroUsuario, posicionUsuario;
- static int memoriaPC1 = 0;
- static int memoriaPC2 = 0;
- static int vectorPC[5] = {10,10,10,10,10};
- static int vectorUsuario[5] = {30,30,30,30,30};
- static int vectorPCused[5] = {50,50,50,50,50};
- static int vectorUsuarioUsed[5] = {70,70,70,70,70}; //declaración de las variables del juego toque y fama, que serán usadas por sus respectivas funciones
- static int tablero_gato[3][3] = {{0,0,0},{0,0,0},{0,0,0}};
- static int fila_gato;
- static int columna_gato;
- static int jugador_gato=1;
- static int ganador_gato=0; //declaración de las variables del juego gato, que serán usadas por sus respectivas funciones
- static int tablero_c4[7][7] = {{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},{0,0,0,0,0,0,0},{0,0,0,0,0,0,0}};
- static int ficha_c4;
- static int jugador_c4 = 0;
- static int ganador_c4 = 0;
- static int columna_c4;
- static char scanColumna[20]; //declaración de las variables del juego conecta 4, que serán usadas por sus respectivas funciones
- int opcion=0; //declaración de variable "opcion" que indica la opción que escogerá el usuario
- int main(){
- while(opcion != 4){
- printf("JUEGOS ICE \n");
- printf("Bienvenido, usuario, a juegos ICE \n En este menu tiene acceso a tres juegos \n");
- printf(" 1.- Conecta 4 \n 2.- Gato \n 3.- Toque Y Fama \n 4.- Salir \n");
- printf("Ingrese el numero de la opcion que desee: \n");
- scanf("%i", &opcion);
- while(opcion < 1 || opcion > 4){
- printf("La opcion elegida no es valida, por favor ingresar otra opcion");
- scanf("%i",&opcion);
- } //bucle while que valida la entrada de la variable opción
- switch(opcion){ //condicional switch que posee casos dependiendo del valor de opcion, provee tres casos, cada uno correspondiente a uno de los juegos
- case 1: //caso 1, incluye las funciones del juego Conecta 4, y lleva a cabo su ejecución en orden
- inicializar_juego_c4(); //se inicializa el juego Conecta 4, se le da la bienvenida al o los usuarios y se imprimen las instrucciones por pantalla
- while(ganador_c4 == 0){ //bucle while que permite que la partida se lleve a cabo hasta que halla un ganador
- char *column = pedirColumna_c4(scanColumna); //se crea un puntero de tipo char llamado column que recibe la columna pedida al usuario
- columna_c4 = filtroLetras_c4(column); //la columna previamente pedida, es filtrada y validada
- ficha_jugador_c4(columna_c4); //se genera y posiciona una ficha en el tablero que depende del turno del jugador
- imprimir_tablero_c4(); //se imprime el tablero con sus fichas por pantalla
- ganador_c4 = verificar_ganador_c4(ganador_c4); //se verifica la existencia de un ganador en el turno
- }
- declarar_ganador_c4(ganador_c4); //si existe un ganador, se terminará el bucle y se usará esta funcion para declararlo
- break;
- case 2: //caso 2, incluye las funciones del juego Gato, y lleva a cabo su ejecución en orden
- inicializar_gato();
- while(ganador_gato == 0){
- fila_gato = pedir_fila_gato();
- columna_gato = pedir_columna_gato();
- ficha_jugador_gato(fila_gato, columna_gato);
- imprimir_tablero_gato();
- ganador_gato = verificar_ganador_gato();
- }
- declarar_ganador_gato(ganador_gato);
- break;
- case 3: //caso 3, incluye las funciones del juego Toque y Fama, y lleva a cabo su ejecución en orden
- bienvenida_tf();
- dificultad = selectorDificultad_tf();
- generadorNumeroPC_tf(vectorPC,dificultad);
- seleccionNumero_tf(vectorUsuario,dificultad);
- while((famaUsuario < dificultad) && (famaPC < dificultad)){
- numeroUsuario = adivinarNumero_tf();
- posicionUsuario = adivinarPosicion_tf(dificultad);
- if(memoriaPC1 == 1){
- numeroPC = memoriaPC2;
- printf("\n El PC eligio el numero %i, ", numeroPC);
- }
- else{
- numeroPC = pcNumberGuess_tf();
- }
- posicionPC = pcPositionGuess_tf(dificultad);
- scanToqueFama_tf(vectorPC, vectorUsuario, numeroUsuario, posicionUsuario, numeroPC, posicionPC, dificultad);
- scanVictoria_tf(famaUsuario, famaPC, dificultad, vectorPC);
- }
- break;
- }
- } /*bucle while restringido por el valor de opcion, mientras esta sea distinta de 4, el contenido del bucle continuará.
- Así asegurando que solamente termina el bucle cuando se escoga la opción 4, la salida del menú de juegos y permite
- volver al menú de juegos al finalizarlos
- */
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement