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 en por los estudiantes de el 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 automaticamente cierra el menú por compelto.
- *
- * El primer juego disponible es llamado conecta 4, en donde participan dos jugadores, a cada uno se le asigna una ficha, de un color específico, correspondiente,
- * y luego entre ellos, deben llenar cuatro espacios con sus respectiavas fichas en línea en un tablero de siete espacios por séis, sea esta, vertical, horizontal o diagonal,
- * el jugador que obtenga el "cuatro en línea" primero, ganará la pertida.
- *
- * El segundo juego es llamado gato, en donde, al igual que Conecta 4, parcitipan dos jugadores, a cada uno se le asigna un símbolo distinto,
- * cada jugador debe llenar tres espacios en línea, sea esta, horizontal, vertical o diagonal, el primer juegador en completar esta última tarea, ganará la pertida.
- *
- * El tercer y último juego es llamado Toque y Fama, en donde, en en condiciones generales, es jugado entre dos o más participantes, pero en el caso del programa, participan solamente el usuario
- * y el computador, el juego del programa, consiste en que el usuario escoge una dificultad, que varía entre dos y cinco, indicando 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 de cada uno, por cada turno un paricipante
- * entrega un dígito y una posición. Si no acierta ningun dato entregado, 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 mayor cantidad de famas por turno ganará el juego, indicando 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}; //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();
- while(ganador_c4 == 0){
- char *column = pedirColumna_c4(scanColumna);
- columna_c4 = filtroLetras_c4(column);
- ficha_jugador_c4(columna_c4);
- imprimir_tablero_c4();
- ganador_c4 = verificar_ganador_c4(ganador_c4);
- }
- declarar_ganador_c4(ganador_c4);
- 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("El PC eligio el numero %i, ", numeroPC);
- }
- else{
- numeroPC = pcNumberGuess_tf();
- }
- posicionPC = pcPossitionGuess_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