Advertisement
Guest User

Buscaminas 1.0

a guest
Nov 18th, 2012
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.68 KB | None | 0 0
  1. //  By ***** : 17-18.11.2012 : Lenguaje C
  2. //  FALTA:  - Mostrar casillas próximas a abierta que sean 0   - Implementar sistema de marcación por tiempo y menú
  3. //      - Mejorar entrada datos                 - Implementar interfaz más intuitiva
  4. //      - Mejorar algoritmo y simplificar el código
  5. //  Made with NANO + GCC  -  Linux Ubuntu 3.5.0-17 i686  -  También funciona correctamente en plataforma Windows [PORTABLE]
  6.  
  7. #include <stdio.h>
  8. #define TAM2 6
  9. #define TAM (TAM2*TAM2)
  10. #define MINA TAM2*2
  11.  
  12. int main (int argc, char *argv [])
  13. {   printf ("Buscaminas 1.0 : By ***** 2012\n"); if (TAM2<=2 || TAM2>9) { printf ("[!] Please change the TAM2 value [>2 min - <9 max]\n"); return 1; } printf ("\n");
  14.     int tablero [TAM], tablero2 [TAM], a, b, x; srand (time (NULL)); for (a=0; a<TAM; a++) { tablero [a]=0; tablero2 [a]=0; }
  15.     for (a=0; a<MINA; a++) { b=rand ()%TAM; while (tablero [b]==-1) b=rand()%TAM; tablero [b]=-1; }
  16.     for (a=0, b=0; a<TAM; a++) {
  17.         if (tablero [a-1]==-1 && (a+0)%TAM2!=0 && a>=1) b++;            if (tablero [a+1]==-1 && (a+1)%TAM2!=0 && a<(TAM-1)) b++;
  18.         if (tablero [a-TAM2]==-1 && a>=TAM2) b++;               if (tablero [a+TAM2]==-1 && a<(TAM-TAM2)) b++;
  19.         if (tablero [a-(TAM2+1)]==-1 && (a+0)%TAM2!=0 && a>=(TAM2+1)) b++;  if (tablero [a+(TAM2+1)]==-1 && (a+1)%TAM2!=0 && a<(TAM-TAM2-1)) b++;
  20.         if (tablero [a-(TAM2-1)]==-1 && (a+1)%TAM2!=0 && a>=(TAM2-1)) b++;  if (tablero [a+(TAM2-1)]==-1 && (a+0)%TAM2!=0 && a<(TAM-TAM2+1)) b++;
  21.         if (tablero [a]==-1) {b=0; continue;} else tablero [a]=b; b=0; }
  22.  
  23.     while (1) { printf ("    "); for (x=1; x<=TAM2; x++) printf ("%d ", x); printf ("\n    "); for (x=1; x<=TAM2; x++) printf ("- ", x);
  24.         for (a=0; a<TAM; a++) {
  25.             if (a%TAM2==0) printf ("\n%d.  ", (a/TAM2)+1); if (tablero2 [a]==1) printf ("%d ", tablero [a]); else printf (". "); } printf ("\n");
  26.             printf ("\nInsert X: "); scanf ("%d", &a); while (a<1 || a>TAM2) { printf ("[!] The inserted value is not OK. Please choose one value between 1 and %d...\n", TAM2); printf ("\nInsert X: "); scanf ("%d", &a); }
  27.             printf ("Insert Y: "); scanf ("%d", &x); while (x<1 || x>TAM2) { printf ("[!] The inserted value is not OK. Please choose one value between 1 and %d...\n", TAM2); printf ("Insert Y: "); scanf ("%d", &x); } a=(a-1)*TAM2+(x-1);
  28.             if (tablero [a]==-1)    { printf ("---  You lost this time...  ---\n"); printf ("    "); for (x=1; x<=TAM2; x++) printf ("%d ", x); printf ("\n    "); for (x=1; x<=TAM2; x++) printf ("- ", x); for (a=0; a<TAM; a++) { if (a%TAM2==0) printf ("\n%d.  ", (a/TAM2)+1); if (tablero [a]==-1) printf ("* "); else printf ("%d ", tablero [a]); } printf ("\n\n"); return 0; }
  29.                 else        {tablero2 [a]=1; b++;}
  30.             if (b==TAM-MINA)    { printf ("\nCongratulations! You won this time...\n"); return 0; } }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement