Advertisement
c_pinoleo01

main

Jan 24th, 2020
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.88 KB | None | 0 0
  1. /* Universidad de La Frontera
  2. * Ingeniería Civil Electrónica
  3. *
  4. * ICC-202 PROGRAMACION DE COMPUTADORES
  5. *
  6. * Tarea 2
  7. *
  8. * Autores: Cristian Pinoleo Jara. (c.pinoleo01@ufromail.cl)
  9. * Max Cortés Torres. (m.cortes09@ufromail.cl)
  10. *
  11. * Fecha: 26 de Enero, 2020
  12. *
  13. * El programa main integra tres juegos previamente diseñados en por los estudiantes de el curso de Programación de computadores
  14. * en distintas ocasiones, Conecta 4, Gato y Toque y Fama. El programa provee un menú interactivo en donde el usuario tiene la opción
  15. * de escoger entre los tres juegos y además se le ofrece una cuarta opción, salir, que automaticamente cierra el menú por compelto.
  16. *
  17. * 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,
  18. * 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,
  19. * el jugador que obtenga el "cuatro en línea" primero, ganará la pertida.
  20. *
  21. * 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,
  22. * 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.
  23. *
  24. * 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
  25. * 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
  26. * 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
  27. * 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
  28. * 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
  29. * 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.
  30. */
  31. #include<stdio.h>
  32. #include<stdlib.h>
  33. #include<cstdlib>
  34. #include<time.h> //declaración de librerías usadas por las distintas funciones de las librerías de juegos
  35. #include"conecta4.h"
  36. #include"juegoGato.h"
  37. #include"toqueYFama.h" //declaración de librerías que continen las funciones usadas en el programa main
  38.  
  39. static int dificultad = 0;
  40. static int toqueUsuario, famaUsuario, toquePC, famaPC;
  41. static int numeroPC, posicionPC, numeroUsuario, posicionUsuario;
  42. static int memoriaPC1 = 0;
  43. static int memoriaPC2 = 0;
  44. static int vectorPC[5] = {10,10,10,10,10};
  45. 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
  46.  
  47. static int tablero_gato[3][3] = {{0,0,0},{0,0,0},{0,0,0}};
  48. static int fila_gato;
  49. static int columna_gato;
  50. static int jugador_gato=1;
  51. static int ganador_gato=0; //declaración de las variables del juego gato, que serán usadas por sus respectivas funciones
  52.  
  53. 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}};
  54. static int ficha_c4;
  55. static int jugador_c4 = 0;
  56. static int ganador_c4 = 0;
  57. static int columna_c4;
  58. static char scanColumna[20]; //declaración de las variables del juego conecta 4, que serán usadas por sus respectivas funciones
  59.  
  60.  
  61. int opcion=0; //declaración de variable "opcion" que indica la opción que escogerá el usuario
  62.  
  63. int main(){
  64.  
  65. while(opcion != 4){
  66.  
  67. printf("JUEGOS ICE \n");
  68. printf("Bienvenido, usuario, a juegos ICE \n En este menu tiene acceso a tres juegos \n");
  69. printf(" 1.- Conecta 4 \n 2.- Gato \n 3.- Toque Y Fama \n 4.- Salir \n");
  70. printf("Ingrese el numero de la opcion que desee: \n");
  71. scanf("%i", &opcion);
  72.  
  73. while(opcion < 1 || opcion > 4){
  74. printf("La opcion elegida no es valida, por favor ingresar otra opcion");
  75. scanf("%i",&opcion);
  76. } //bucle while que valida la entrada de la variable opción
  77.  
  78.  
  79.  
  80. switch(opcion){ //condicional switch que posee casos dependiendo del valor de opcion, provee tres casos, cada uno correspondiente a uno de los juegos
  81.  
  82. case 1: //caso 1, incluye las funciones del juego Conecta 4, y lleva a cabo su ejecución en orden
  83.  
  84. inicializar_juego_c4();
  85.  
  86. while(ganador_c4 == 0){
  87.  
  88. char *column = pedirColumna_c4(scanColumna);
  89.  
  90. columna_c4 = filtroLetras_c4(column);
  91.  
  92. ficha_jugador_c4(columna_c4);
  93.  
  94. imprimir_tablero_c4();
  95.  
  96. ganador_c4 = verificar_ganador_c4(ganador_c4);
  97.  
  98.  
  99. }
  100.  
  101. declarar_ganador_c4(ganador_c4);
  102.  
  103. break;
  104.  
  105. case 2: //caso 2, incluye las funciones del juego Gato, y lleva a cabo su ejecución en orden
  106.  
  107. inicializar_gato();
  108.  
  109. while(ganador_gato == 0){
  110.  
  111. fila_gato = pedir_fila_gato();
  112.  
  113. columna_gato = pedir_columna_gato();
  114.  
  115. ficha_jugador_gato(fila_gato, columna_gato);
  116.  
  117. imprimir_tablero_gato();
  118.  
  119. ganador_gato = verificar_ganador_gato();
  120.  
  121. }
  122.  
  123. declarar_ganador_gato(ganador_gato);
  124.  
  125. break;
  126.  
  127. case 3: //caso 3, incluye las funciones del juego Toque y Fama, y lleva a cabo su ejecución en orden
  128.  
  129. bienvenida_tf();
  130. dificultad = selectorDificultad_tf();
  131.  
  132. generadorNumeroPC_tf(vectorPC,dificultad);
  133. seleccionNumero_tf(vectorUsuario,dificultad);
  134.  
  135. while((famaUsuario < dificultad) && (famaPC < dificultad)){
  136. numeroUsuario = adivinarNumero_tf();
  137. posicionUsuario = adivinarPosicion_tf(dificultad);
  138. if(memoriaPC1 == 1){
  139. numeroPC = memoriaPC2;
  140. printf("El PC eligio el numero %i, ", numeroPC);
  141. }
  142. else{
  143. numeroPC = pcNumberGuess_tf();
  144. }
  145. posicionPC = pcPossitionGuess_tf(dificultad);
  146. scanToqueFama_tf(vectorPC, vectorUsuario, numeroUsuario, posicionUsuario, numeroPC, posicionPC, dificultad);
  147. scanVictoria_tf(famaUsuario, famaPC, dificultad, vectorPC);
  148. }
  149.  
  150. break;
  151.  
  152.  
  153.  
  154.  
  155. }
  156.  
  157.  
  158.  
  159. } /*bucle while restringido por el valor de opcion, mientras esta sea distinta de 4, el contenido del bucle continuará.
  160. Así asegurando que solamente termina el bucle cuando se escoga la opción 4, la salida del menú de juegos y permite
  161. volver al menú de juegos al finalizarlos
  162. */
  163.  
  164.  
  165.  
  166. return 0;
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement