Advertisement
c_pinoleo01

lo_mein

Jan 25th, 2020
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.56 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 por los estudiantes del 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 automáticamente cierra el menú por completo.
  16. *
  17. * 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,
  18. * 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,
  19. * el jugador que obtenga el "cuatro en línea" primero, ganará la partida.
  20. *
  21. * 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,
  22. * cada jugador debe llenar tres espacios seguidos, sean estos horizontal, vertical o diagonalmente. El primer juegador en completar esta tarea, ganará la partida.
  23. *
  24. * 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
  25. * 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
  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 del otro, por cada turno un paricipante
  28. * 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
  29. * 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.
  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};
  46. static int vectorPCused[5] = {50,50,50,50,50};
  47. 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
  48.  
  49. static int tablero_gato[3][3] = {{0,0,0},{0,0,0},{0,0,0}};
  50. static int fila_gato;
  51. static int columna_gato;
  52. static int jugador_gato=1;
  53. static int ganador_gato=0; //declaración de las variables del juego gato, que serán usadas por sus respectivas funciones
  54.  
  55. 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}};
  56. static int ficha_c4;
  57. static int jugador_c4 = 0;
  58. static int ganador_c4 = 0;
  59. static int columna_c4;
  60. static char scanColumna[20]; //declaración de las variables del juego conecta 4, que serán usadas por sus respectivas funciones
  61.  
  62.  
  63. int opcion=0; //declaración de variable "opcion" que indica la opción que escogerá el usuario
  64.  
  65. int main(){
  66.  
  67. while(opcion != 4){
  68.  
  69. printf("JUEGOS ICE \n");
  70. printf("Bienvenido, usuario, a juegos ICE \n En este menu tiene acceso a tres juegos \n");
  71. printf(" 1.- Conecta 4 \n 2.- Gato \n 3.- Toque Y Fama \n 4.- Salir \n");
  72. printf("Ingrese el numero de la opcion que desee: \n");
  73. scanf("%i", &opcion);
  74.  
  75. while(opcion < 1 || opcion > 4){
  76. printf("La opcion elegida no es valida, por favor ingresar otra opcion");
  77. scanf("%i",&opcion);
  78. } //bucle while que valida la entrada de la variable opción
  79.  
  80.  
  81.  
  82. switch(opcion){ //condicional switch que posee casos dependiendo del valor de opcion, provee tres casos, cada uno correspondiente a uno de los juegos
  83.  
  84. case 1: //caso 1, incluye las funciones del juego Conecta 4, y lleva a cabo su ejecución en orden
  85.  
  86. 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
  87.  
  88. while(ganador_c4 == 0){ //bucle while que permite que la partida se lleve a cabo hasta que halla un ganador
  89.  
  90. char *column = pedirColumna_c4(scanColumna); //se crea un puntero de tipo char llamado column que recibe la columna pedida al usuario
  91.  
  92. columna_c4 = filtroLetras_c4(column); //la columna previamente pedida, es filtrada y validada
  93.  
  94. ficha_jugador_c4(columna_c4); //se genera y posiciona una ficha en el tablero que depende del turno del jugador
  95.  
  96. imprimir_tablero_c4(); //se imprime el tablero con sus fichas por pantalla
  97.  
  98. ganador_c4 = verificar_ganador_c4(ganador_c4); //se verifica la existencia de un ganador en el turno
  99.  
  100.  
  101. }
  102.  
  103. declarar_ganador_c4(ganador_c4); //si existe un ganador, se terminará el bucle y se usará esta funcion para declararlo
  104.  
  105. break;
  106.  
  107. case 2: //caso 2, incluye las funciones del juego Gato, y lleva a cabo su ejecución en orden
  108.  
  109. inicializar_gato();
  110.  
  111. while(ganador_gato == 0){
  112.  
  113. fila_gato = pedir_fila_gato();
  114.  
  115. columna_gato = pedir_columna_gato();
  116.  
  117. ficha_jugador_gato(fila_gato, columna_gato);
  118.  
  119. imprimir_tablero_gato();
  120.  
  121. ganador_gato = verificar_ganador_gato();
  122.  
  123. }
  124.  
  125. declarar_ganador_gato(ganador_gato);
  126.  
  127. break;
  128.  
  129. case 3: //caso 3, incluye las funciones del juego Toque y Fama, y lleva a cabo su ejecución en orden
  130.  
  131. bienvenida_tf();
  132. dificultad = selectorDificultad_tf();
  133.  
  134. generadorNumeroPC_tf(vectorPC,dificultad);
  135. seleccionNumero_tf(vectorUsuario,dificultad);
  136.  
  137. while((famaUsuario < dificultad) && (famaPC < dificultad)){
  138. numeroUsuario = adivinarNumero_tf();
  139. posicionUsuario = adivinarPosicion_tf(dificultad);
  140. if(memoriaPC1 == 1){
  141. numeroPC = memoriaPC2;
  142. printf("\n El PC eligio el numero %i, ", numeroPC);
  143. }
  144. else{
  145. numeroPC = pcNumberGuess_tf();
  146. }
  147. posicionPC = pcPositionGuess_tf(dificultad);
  148. scanToqueFama_tf(vectorPC, vectorUsuario, numeroUsuario, posicionUsuario, numeroPC, posicionPC, dificultad);
  149. scanVictoria_tf(famaUsuario, famaPC, dificultad, vectorPC);
  150. }
  151.  
  152. break;
  153.  
  154.  
  155.  
  156.  
  157. }
  158.  
  159.  
  160.  
  161. } /*bucle while restringido por el valor de opcion, mientras esta sea distinta de 4, el contenido del bucle continuará.
  162. Así asegurando que solamente termina el bucle cuando se escoga la opción 4, la salida del menú de juegos y permite
  163. volver al menú de juegos al finalizarlos
  164. */
  165.  
  166.  
  167.  
  168. return 0;
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement