Tan sólo comentadme si veis que le falta algo importante, si he puesto algún disparate, etc... Si os animáis hasta podéis seguir desarrollándolo un poquito ¡Gracias!
Citar
Pastebin: http://pastebin.com/Gwq42z1u
Código
// By ***** : 17-18.11.2012 : Lenguaje C // FALTA: - Mostrar casillas próximas a abierta que sean 0 - Implementar sistema de marcación por tiempo y menú // - Mejorar entrada datos - Implementar interfaz más intuitiva // - Mejorar algoritmo y simplificar el código // Made with NANO + GCC - Linux Ubuntu 3.5.0-17 i686 - También funciona correctamente en plataforma Windows [PORTABLE] #include <stdio.h> #define TAM2 6 #define TAM (TAM2*TAM2) #define MINA TAM2*2 int main (int argc, char *argv []) for (a=0, b=0; a<TAM; a++) { 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++; if (tablero [a-TAM2]==-1 && a>=TAM2) b++; if (tablero [a+TAM2]==-1 && a<(TAM-TAM2)) b++; 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++; 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++; if (tablero [a]==-1) {b=0; continue;} else tablero [a]=b; b=0; } for (a=0; a<TAM; a++) { 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; } else {tablero2 [a]=1; b++;} }
*** Modif 18/11/12 - 11:25 : He eliminado un bucle for innecesario