From Torrid Iguana, 1 Week ago, written in Text.
Embed
  1. /*----- Prototipo de funciones -----*/
  2. void principalGenerala();
  3. void jugarGenerala();
  4. void instruccionesGenerala();
  5. void mostrarEstadisticasGenerala();
  6. void jugarTurno(const char* jugador);
  7. int calcularPuntaje();
  8.  
  9. /*----- Interfaces -----*/
  10. void guiPrincipalGenerala();
  11. void guiJuegoGenerala(); // Muestra informacion del juego.
  12.  
  13. /*----- Variables globales -----*/
  14. int dados[3];
  15. int puntosJugador=0, puntosCPU=0;
  16.  
  17. int Dados(int Dados[]);
  18. int Mano();
  19. void ElegirNombre();
  20. void Ganador();
  21.  
  22. void principalGenerala()
  23. {
  24.         int op;
  25.         cadena opcion="";
  26.         do{
  27.                 guiPrincipalGenerala();
  28.                 op=0;
  29.                 strcpy(opcion,"");
  30.             fflush(stdin);
  31.             ingresoCadena(opcion,1,"1234",false);
  32.             op=atoi(opcion);
  33.                 switch (op){
  34.                         case 1:
  35.                                 superClear();
  36.                                 jugarGenerala();
  37.                         break;
  38.                         case 2:
  39.                                 mostrarEstadisticasGenerala();
  40.                         break;
  41.                         case 3:
  42.                                 instruccionesGenerala();
  43.                         break;
  44.                         case 4:
  45.                         break;
  46.                         default:
  47.                                 printf("\n");
  48.                                 printf("\n");
  49.                                 superPrintTemp("&.04&!&!&!Opci&_on no valida!!!\nEscribe el numero de la opci&_on");
  50.                         break;
  51.         }
  52.     }while( op != 4);
  53.         return;
  54. }
  55.  
  56. void jugarGenerala(){
  57.         int mano; //1 Player, 2 CPU
  58.         cadena smano;
  59.         int P1,CPU;
  60.         puntosJugador=0;puntosCPU=0;
  61.     do{
  62.         P1=getRand(6,1);
  63.                 CPU=getRand(6,1);
  64.         guiJuegoGenerala();
  65.                 superPrint("\n &b&i&a El que obtenga el numero m&_as alto comienza:\n");
  66.                 superPrint("&8\n (Presiona una tecla para tirar el dado)");
  67.                 getch();
  68.                 limpiar(wherey(),wherey());
  69.                 gotoxy(wherex(),wherey()-1);
  70.                 sprintf(aux,"   &b &k&a Dado de %s: ",usuarioActual.nombre);superPrint(aux);
  71.                 efectoDado();
  72.                 sprintf(aux,"%i",P1);superPrint(aux);
  73.                 sprintf(aux,"\n   &b &k&a Dado de CPU: ");superPrint(aux);
  74.                 efectoDado();
  75.                 sprintf(aux,"%i",CPU);superPrint(aux);
  76.                 if(CPU==P1){
  77.                         superPrint("\n\n &!Es un empate! Se vuelve a lanzar.");getch();
  78.                 }
  79.         }while(CPU==P1);
  80.     if(CPU>P1){
  81.         strcpy(smano,"CPU");
  82.                 mano=2;
  83.         }else{
  84.                 strcpy(smano,"Jugador");
  85.                 mano=1;
  86.         }
  87.         sprintf(aux,"\n\n %s obtuvo un numero m&_as grande. \n &!%s es mano!",smano,smano);superPrint(aux);getch();
  88.        
  89.         for(ronda=0; ronda<3;ronda++){
  90.                 guiJuegoGenerala();
  91.                 if(mano=1){
  92.                         jugarTurno(usuarioActual.nombre);
  93.                         guiJuegoGenerala();
  94.                         jugarTurno("CPU");
  95.                 }else{
  96.                         jugarTurno("CPU");
  97.                         guiJuegoGenerala();
  98.                         jugarTurno(usuarioActual.nombre);
  99.                 }
  100.         }      
  101.      Ganador();
  102.          getch();      
  103. }
  104.  
  105. int calcularPuntaje(){
  106.         int i=0, j=0;
  107.         if(dados[i]==dados[i+1]&&dados[i+1]==dados[i+2]){
  108.                 sprintf(aux, "&b&k&a Dado 1: %i\n&b&k&a Dado 2: %i\n&b&k&a Dado 3: %i\n\n&7 &!&aGenerala, que grande&7!\n",dados[0],dados[1],dados[2]);
  109.                 pantallazo(aux);
  110.                 return 50;
  111.         } else if(dados[i]==dados[i+1]||dados[i+1]==dados[i+2]||dados[i]==dados[i+2]){
  112.                 sprintf(aux, "&b&k&a Dado 1: %i\n&b&k&a Dado 2: %i\n&b&k&a Dado 3: %i\n\n&7 &!&aPares&7!\n",dados[0],dados[1],dados[2]);
  113.                 pantallazo(aux);
  114.                 if(dados[i]==dados[i+1])return dados[i]+dados[i+1];
  115.                 if(dados[i+1]==dados[i+2])return dados[i+1]+dados[i+2];
  116.                 if(dados[i]==dados[i+2])return dados[i]+dados[i+2];
  117.     }else if(dados[i]-dados[i+1] == -1&&dados[i+1]-dados[i+2] == -1){
  118.         sprintf(aux, "&b&k&a Dado 1: %i\n&b&k&a Dado 2: %i\n&b&k&a Dado 3: %i\n\n&7 &!&aGenial obtuviste escaleras&7!\n",dados[0],dados[1],dados[2]);
  119.                 pantallazo(aux);
  120.                 return 25;
  121.         }else if(dados[i]-dados[i+1] == 1&&dados[i+1]-dados[i+2] == 1){
  122.         sprintf(aux, "&b&k&a Dado 1: %i\n&b&k&a Dado 2: %i\n&b&k&a Dado 3: %i\n\n&7 &!&aGenial obtuviste escaleras&7!\n",dados[0],dados[1],dados[2]);
  123.                 pantallazo(aux);
  124.                 return 25;
  125.         }else if(dados[i+1]-dados[i+2]==-1&&dados[i+2]-dados[i]==-1){
  126.                 sprintf(aux, "&b&k&a Dado 1: %i\n&b&k&a Dado 2: %i\n&b&k&a Dado 3: %i\n\n&7 &!&aGenial obtuviste escaleras&7!\n",dados[0],dados[1],dados[2]);
  127.                 pantallazo(aux);
  128.                 return 25;
  129.         }else if(dados[i+1]-dados[i+2]==1&&dados[i+2]-dados[i]==1){
  130.                 sprintf(aux, "&b&k&a Dado 1: %i\n&b&k&a Dado 2: %i\n&b&k&a Dado 3: %i\n\n&7 &!&aGenial obtuviste escaleras&7!\n",dados[0],dados[1],dados[2]);
  131.                 pantallazo(aux);  
  132.                 return 25;
  133.         }else if(dados[i+2]-dados[i]==-1&&dados[i]-dados[i+1]==-1){
  134.                 sprintf(aux, "&b&k&a Dado 1: %i\n&b&k&a Dado 2: %i\n&b&k&a Dado 3: %i\n\n&7 &!&aGenial obtuviste escaleras&7!\n",dados[0],dados[1],dados[2]);
  135.                 pantallazo(aux);
  136.                 return 25;
  137.         }else if(dados[i+2]-dados[i]==1&&dados[i]-dados[i+1]==1){
  138.                 sprintf(aux, "&b&k&a Dado 1: %i\n&b&k&a Dado 2: %i\n&b&k&a Dado 3: %i\n\n&7 &!&aGenial obtuviste escaleras&7!\n",dados[0],dados[1],dados[2]);
  139.                 pantallazo(aux);  
  140.                 return 25;
  141.         }
  142.     return 0;
  143. }
  144.  
  145. void jugarTurno(const char* jugador){
  146.     int puntos=0;      
  147.         sprintf(aux,"\n &b&i&a Es el turno de %s:\n",jugador);superPrint(aux);
  148.         for(int i=0;i<3;i++){
  149.                 dados[i]=getRand(6,1);
  150.         }
  151.         if(strcmp(jugador,"CPU")!=0){
  152.                 superPrint("&8\n (Presiona una tecla para tirar el dado)");
  153.                 getch();
  154.                 limpiar(wherey(),wherey());
  155.                 gotoxy(wherex(),wherey()-1);
  156.         }else printf("\n");
  157.         for(int i=0;i<3;i++){
  158.                 sprintf(aux,"   &b&k&a Dado %d: ",i+1);superPrint(aux);
  159.                 efectoDado();
  160.                 sprintf(aux,"%i\n",dados[i]);superPrint(aux);
  161.                 if(strcmp(jugador,"CPU")!=0){
  162.                         getch();       
  163.                 }
  164.         }
  165.         puntos=calcularPuntaje();
  166.         if(strcmp(jugador,"CPU")!=0){
  167.                 puntosJugador+=puntos;
  168.                 sprintf(aux, "Puntos de la ronda: &a%i\n&7Puntaje total: &a%i", puntos, puntosJugador);pantallazo(aux);
  169.         }else {
  170.                 puntosCPU+=puntos;
  171.                 sprintf(aux, "Puntos de la ronda: &a%i\n&7Puntaje total: &a%i", puntos, puntosCPU);pantallazo(aux);
  172.         }
  173. }
  174.  
  175. void Ganador()
  176. {
  177.         system("CLS"); 
  178.         while(puntosCPU==puntosJugador){
  179.             system("CLS");     
  180.                 printf("\n[RONDA DESEMPATE] El que obtenga el numero mas alto ganara...");
  181.                 getch();
  182.                 puntosJugador=rand()%6+1;
  183.         printf("\n\n\n**  A Jugador le toco el dado:   %d",puntosJugador);
  184.                 getch();
  185.         puntosCPU=rand()%6+1;
  186.         printf("\n\n**  A CPU le toco el dado:  %d",puntosCPU);
  187.         getch();
  188.         if(puntosCPU==puntosJugador)
  189.     {
  190.         printf("\n\n--- Numeros iguales, se vuelve a lanzar!! ---");
  191.         getch();
  192.         }
  193.     }
  194.    
  195.    
  196.     if(puntosJugador>puntosCPU){
  197.                 sprintf(aux,"&a&!Ganaste!\n&7Puntaje: &a%i",0);pantallazo(aux);
  198.         }else{
  199.                 pantallazo("&4&!Perdiste!\n&7&!Mas suerte para la pr&_oxima!");
  200.         }
  201. }
  202.        
  203.        
  204. /*----- Interfaces Graficas de Menu -----*/
  205.  
  206. void guiPrincipalGenerala(){
  207.         consoleSize(31,15);
  208.         system("cls");
  209.         cuadro("&bNULL GAMES\nGenerala","verde_claro");
  210.         superPrint("\n &b1.- &aJugar\n");
  211.         superPrint(" &b2.- &aVer estadisticas\n");
  212.         superPrint(" &b3.- &aInstrucciones\n");
  213.         superPrint(" &b4.- &4Volver al menu de juegos\n");
  214.         superPrint("\n &b&g &aElige una opcion: ");
  215. }
  216.  
  217. void guiJuegoGenerala(){
  218.         consoleSize(49,17);
  219.         system("cls");
  220.         cuadro("&bNULL GAMES\nGenerala","verde_claro");
  221.         sprintf(aux,"\n &b&i&a Ronda: &7%i\n &b&i&a Puntaje %s: &7%i\n &b&i&a Puntaje CPU: &7%i\n",ronda,usuarioActual.nombre,puntosJugador,puntosCPU);superPrint(aux);
  222. }
  223.  
  224. void instruccionesGenerala(){
  225.         consoleSize(83,16);
  226.         system("cls");
  227.         cuadro("&bGenerala\nInstrucciones","verde_claro");
  228.         superPrint("\n &b&i &7Generala es un juego de dados. Se juega con 3 dados.\n");
  229.         superPrint(" &b&i &7El objetivo del juego es lograr el mayor puntaje en 10 intentos.\n");
  230.         superPrint("\n &b&i &7Puntaje:\n");
  231.         superPrint("   &b&k &aEscalera &7(25 puntos): Se forma con una progresion de numeros.\n");
  232.         superPrint("   &b&k &aGenerala &7(50 puntos): Cuando se obtienen tres numeros iguales.\n");
  233.         superPrint("   &b&k &7En cualquier otro caso se deben sumar los numeros iguales.\n");
  234.         superPrint("   &b&k &7Si los tres numeros son distintos y no es una escalera no se obtiene puntaje.\n");
  235.         superPrint("\n &aPresiona una tecla para regresar al menu...");
  236.         getch();
  237. }
  238.  
  239. void mostrarEstadisticasGenerala(){
  240.         consoleSize(45,17);
  241.         system("cls");
  242.         cuadro("&bGenerala\nEstadisticas","verde_claro");
  243.         sprintf(aux, "\n &b&k &aPremios: ");superPrint(aux);
  244.         sprintf(aux, "\n    &b&i &aCopas: &7%i",usuarioActual.Generala.premio.copa);superPrint(aux);
  245.         sprintf(aux, "\n    &b&i &aTrofeos: &7%i",usuarioActual.Generala.premio.trofeo);superPrint(aux);
  246.         sprintf(aux, "\n    &b&i &aMedallas: &7%i",usuarioActual.Generala.premio.medalla);superPrint(aux);
  247.         sprintf(aux, "\n    &b&i &aMonedas: &7%i",usuarioActual.Generala.premio.moneda);superPrint(aux);
  248.         sprintf(aux, "\n    &b&i &aDiploma: &7%i",usuarioActual.Generala.premio.diploma);superPrint(aux);
  249.         sprintf(aux, "\n\n &b&i &aVeces jugadas: &7%i",usuarioActual.Generala.CantJugadas);superPrint(aux);
  250.         sprintf(aux, "\n&a &b&i M&_aximo puntaje: &7%i",usuarioActual.Generala.puntajeMax);superPrint(aux);
  251.         superPrint(" &7\n\n Presiona una tecla para regresar al menu...");
  252.         getch();
  253.         }
  254.