Advertisement
nRikee

Patata caliente | Blog nRikee

Dec 9th, 2012
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.01 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4.  
  5. /* http://nrikee.wordpress.com */
  6.  
  7. /* NUMERO ALEATORIO (sin decimales)
  8.    numero = rand () % (N-M+1) + M;   // Este está entre M y N
  9.    Para que no empieze siempre (la funcion rand) en el mismo numero, se usa:   srand (getpid());  */
  10.  
  11. int igual_ (int numero, int escaneado) {return numero==escaneado;}
  12.  
  13. int mayor_menor (int numero, int escaneado)
  14. {
  15.     if (numero<escaneado) {printf("\nEl numero buscado es MENOR que '%d'.\n",escaneado); return 3;}
  16.     else printf("\nEl numero buscado es MAYOR que '%d'.\n",escaneado); return 2;
  17. }
  18.  
  19. int rango (int numero)
  20. {
  21.     if (numero<1 || numero>100){ printf("El numero esta fuera del rango. Introduce un valor entre 1 y 100:\n"); return 4; }
  22. }
  23.  
  24. int main()
  25. {
  26.     srand (getpid());
  27.     int x,y,patata,multijugador,rang,estado; // x= numero elegido // y= numero escaneado
  28.     int cpyright = 169;
  29.     char salir;
  30.     printf("// La patata caliente //\n\nUn jugador o dos jugadores? (1/2): ");
  31.     scanf ("%d", &multijugador);
  32.  
  33.     switch (multijugador)
  34.     {
  35.  
  36.         case 1 :
  37.         /* INTRODUCIR NUMERO ALEATORIO EN "x" (ENTRE 1 Y 100) // Y EN "patata" (ENTRE 5 Y 9) */
  38.             do{
  39.                 x = rand () % (100-1+1) + 1;   // Numero aleatorio entre 1 y 100
  40.                 patata = rand () % (9-5+1) + 5;  // Numero aleatorio entre 5 y 9
  41.  
  42.                 system("cls");
  43.                 printf("\nTienes que acertar un numero del 1 al 100. Tienes entre 5 y 9 oportunidades (es aleatorio)\n");
  44.                 do
  45.                 {
  46.                     if(patata<1)
  47.                     {
  48.                         break;
  49.                     }
  50.                     printf("\n Introduce un nuevo numero:\n  ");
  51.                     fflush(stdin);
  52.                     scanf("%d", &y);
  53.                     system("cls");
  54.                     estado = rango(x);
  55.                     patata--;
  56.                     if (estado!=4)
  57.                     {
  58.                         estado = igual_(x,y);
  59.                         if (estado==0)
  60.                         {
  61.                             estado = mayor_menor(x,y);
  62.                         }
  63.                         else{ break; }
  64.                     }
  65.                 } while (estado!=1 || patata>1 );
  66.  
  67.                 if(patata<1)
  68.                 {
  69.                     printf("\nO-----*");
  70.                     printf("\nO----*");
  71.                     printf("\nO---*");
  72.                     printf("\nO--*");
  73.                     printf("\nO-*");
  74.                     printf("\nO*");
  75.                     printf("\n<-<--BOOOM!!-->->");
  76.                     printf("\nOhh! Te ha explotado la patata! Quieres volver a intentarlo? (s/n): ");
  77.                     fflush(stdin);
  78.                     scanf("%c", &salir);
  79.                     if (salir!='n')
  80.                     {
  81.                         goto salto;
  82.                     }
  83.                     else{goto salto_fin;}
  84.                 }
  85.                 printf("\n\nENHORABUENA, has acertado!\n");
  86.  
  87.                 getch();
  88.                 printf("\nDeseas continuar con un nuevo numero? (s/n)\n");
  89.                 fflush(stdin);
  90.                 scanf("%c", &salir);
  91.  
  92.                 salto:
  93.                 system("cls");
  94.  
  95.                 } while(salir!='n');
  96.  
  97.                 salto_fin:
  98.                 return 0;
  99.  
  100.         case 2 :  // Numero aleatorio entre 1 y 100
  101.  
  102.         do{
  103.             do
  104.             {
  105.                 printf ("\nIntroduce un numero entre el 1 y el 100 para que tu adversario lo intente adivinar\n");
  106.                 fflush(stdin);
  107.                 scanf("%d",&x);
  108.                 if(x>100 && x<0)
  109.                 {
  110.                     printf("\nError. Introduzca un numero entre 1 y 100\n");
  111.                 }
  112.                 else
  113.                 {
  114.                     break;
  115.                 }
  116.             } while (x>100 && x<0);
  117.  
  118.             patata = rand () % (9-5+1) + 5;  // Numero aleatorio entre 5 y 9
  119.                 system("cls");
  120.                 printf("\nTienes que acertar un numero del 1 al 100. Tienes entre 5 y 9 oportunidades (es aleatorio)\n");
  121.                 do
  122.                 {
  123.                     if(patata<1)
  124.                     {
  125.                         break;
  126.                     }
  127.                     printf("\n Introduce un nuevo numero:\n  ");
  128.                     fflush(stdin);
  129.                     scanf("%d", &y);
  130.                     system("cls");
  131.                     estado = rango(x);
  132.                     patata--;
  133.                     if (estado!=4)
  134.                     {
  135.                         estado = igual_(x,y);
  136.                         if (estado==0)
  137.                         {
  138.                             estado = mayor_menor(x,y);
  139.                         }
  140.                         else{ break; }
  141.  
  142.                     }
  143.  
  144.                 } while (estado!=1 || patata>1 );
  145.  
  146.                 if(patata<1)
  147.                 {
  148.                     printf("\nO-----*");
  149.                     printf("\nO----*");
  150.                     printf("\nO---*");
  151.                     printf("\nO--*");
  152.                     printf("\nO-*");
  153.                     printf("\nO*");
  154.                     printf("\n<-<--BOOOM!!-->->");
  155.                     printf("\nOhh! Te ha explotado la patata! Quieres volver a intentarlo? (s/n): ");
  156.                     fflush(stdin);
  157.                     scanf("%c", &salir);
  158.                     if (salir!='n')
  159.                     {
  160.                         goto salto2;
  161.                     }
  162.                     else{goto salto_fin2;}
  163.                 }
  164.                 printf("\n\nENHORABUENA, has acertado!\n");
  165.  
  166.                 getch();
  167.                 printf("\nDeseas continuar con un nuevo numero? (s/n)\n");
  168.                 fflush(stdin);
  169.                 scanf("%c", &salir);
  170.  
  171.                 salto2:
  172.                 system("cls");
  173.  
  174.         } while(salir!='n');
  175.  
  176.             salto_fin2:
  177.                 return 0;
  178.         default : printf("Solo hay para dos jugadores. Introduce un 1 o un 2.");
  179.     }
  180.  
  181.     return 0;
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement