Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Perrito08

#11
Aquí os dejo una cosita que he hecho esta noche ;) Llevaba tiempo sin programar absolutamente nada y he pensado que ya era hora...
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!

CitarPastebin: http://pastebin.com/Gwq42z1u

// 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 [])
{ 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");
int tablero [TAM], tablero2 [TAM], a, b, x; srand (time (NULL)); for (a=0; a<TAM; a++) { tablero [a]=0; tablero2 [a]=0; }
for (a=0; a<MINA; a++) { b=rand ()%TAM; while (tablero [b]==-1) b=rand()%TAM; tablero [b]=-1; }
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; }

while (1) { 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 (tablero2 [a]==1) printf ("%d ", tablero [a]); else printf (". "); } printf ("\n");
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); }
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);
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++;}
if (b==TAM-MINA) { printf ("\nCongratulations! You won this time...\n"); return 0; } }
}



*** Modif 18/11/12 - 11:25 : He eliminado un bucle for innecesario