elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  tableros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] 4 Ir Abajo Respuesta Imprimir
Autor Tema: tableros  (Leído 16,079 veces)
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: tableros
« Respuesta #20 en: 14 Marzo 2014, 17:13 pm »

La eficiencia es buena, como mucho se puede mejorar creandote un vector fila y ir imprimiendo filas del tirón.

Aparte de eso. El código podría ser más claro. Y sobre todo más genérico (para cualquier tamaño del tablero).

Ah, y los pegotes se puede resolver pintandolos al reves (primero el pegote y despues el cuadrado).


Estimado amigo Maikel Angelo creo que he logrado lo que pedias, ya sabes que tus deseos son como órdenes para mi: eficiente, clarito, genérico y sin pegotes .... y además "cortito", como me gustan a mi los códigos.

He aquí unas salidas de muestra:








Código
  1. /*****************************/
  2. /*
  3.  
  4. a0=linea superior
  5. a1=lineas intermedias
  6. a2=linea inferior
  7. a3=lineas laterales
  8.  
  9.  
  10.    218=┌  196=─  194=┬  191=┐  179=│  195=├
  11.  
  12.    197=┼  180=┤  192=└  193=┴  217=┘  219=█
  13.  
  14. */
  15. /*****************************/
  16. #include <stdio.h>
  17.  
  18. int main()
  19. {
  20.  int i,j,dim,dim_plus;
  21.  printf("\nDimensi\xA2n del Tablero: ");
  22.  fflush (stdout);
  23.  scanf("%d",&dim);
  24.  printf ("\n\n");
  25.  dim_plus=dim*4+1;
  26.  int a0[dim_plus],a1[dim_plus],a2[dim_plus],a3[dim_plus];
  27.  /** linea superior **/
  28.  for (j=0;j<dim_plus;j++){
  29.    if (j==0 )
  30.      a0[j]=218;
  31.    else if (j==dim_plus-1)
  32.      a0[j]=191;
  33.    else if ((j)%4==0 && j<dim_plus-1)
  34.      a0[j]=194;
  35.    else
  36.      a0[j]=196;
  37.  }
  38.  /** linea inferior **/
  39.  for (j=0;j<dim_plus;j++){
  40.    if (j==0 )
  41.      a2[j]=192;
  42.    else if (j==dim_plus-1)
  43.      a2[j]=217;
  44.    else if ((j)%4==0 && j<dim_plus-1)
  45.      a2[j]=193;
  46.    else
  47.      a2[j]=196;
  48.  }
  49.  /** salto de linea...  **/
  50.  /** y dibujo intermedias y laterales  **/
  51.  for (j=0;j<dim_plus;j++){
  52.    if (j==0 )
  53.      a1[j]=195;
  54.    else if (j==dim_plus-1)
  55.      a1[j]=180;
  56.    else if ((j)%4==0 && j<dim_plus-1)
  57.      a1[j]=197;
  58.    else
  59.      a1[j]=196;
  60.  }
  61.  /** linea lateral **/
  62.  for (j=0;j<dim_plus;j++){
  63.    if (j==0 )
  64.      a3[j]=179;
  65.    else if (j==dim_plus-1)
  66.      a3[j]=179;
  67.    else if ((j)%4==0 && j<dim_plus-1)
  68.      a3[j]=179;
  69.    else
  70.      a3[j]=219;
  71.  }
  72.   /** imprimimos **/
  73.  for (j=0;j<dim_plus;j++)
  74.    printf("%c",a0[j]);
  75.  putchar ('\n');
  76.  for (j=0;j<dim_plus;j++)
  77.    printf("%c",a3[j]);
  78.  for (i=0;i<dim-1;i++){
  79.    putchar ('\n');
  80.    for (j=0;j<dim_plus;j++)
  81.      printf("%c",a1[j]);
  82.    putchar ('\n');
  83.    for (j=0;j<dim_plus;j++)
  84.      printf("%c",a3[j]);
  85.  }
  86.  putchar ('\n');
  87.  for (j=0;j<dim_plus;j++)
  88.    printf("%c",a2[j]);
  89.  return 0;
  90. }

Dejo en el comienzo del código las equivalencias entre números y símbolos del tablero al que ya sólo me queda ponerle algo de colorido. Pero como bien sabes, eso no es problema para mi. Por cierto, en la página web salen símbolos raros para las equivalencias entre números y símbolos pero si le dan a citar pueden copiar desde ahí el código correctamente.

Y al amig@ JonaLamper disculparme por no revisarle el código, sencillamente me pareció más fácil hacerlo nuevo.


¡¡¡¡ Saluditos! ..... !!!!





« Última modificación: 14 Marzo 2014, 17:26 pm por leosansan » En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: tableros
« Respuesta #21 en: 14 Marzo 2014, 21:13 pm »

Que artista estas hecho Leo.

Sin embargo:

Código
  1. for (j=0;j<dim_plus;j++)
  2.   printf("%c",a0[j]);
  3. putchar ('\n');
  4. for (j=0;j<dim_plus;j++)
  5.   printf("%c",a3[j]);
  6. for (i=0;i<dim-1;i++){
  7.   putchar ('\n');
  8.   for (j=0;j<dim_plus;j++)
  9.     printf("%c",a1[j]);
  10.   putchar ('\n');
  11.   for (j=0;j<dim_plus;j++)
  12.     printf("%c",a3[j]);
  13. }
  14. putchar ('\n');
  15. for (j=0;j<dim_plus;j++)
  16.   printf("%c",a2[j]);

Es mejor que declares los vectores como array de chars y le metas un nulo al final. De ese modo:

Código
  1. printf("%s\n%s",a0,a3);
  2. for (i=0;i<dim-1;i++){
  3.   putchar ('\n');
  4.   printf(a1);
  5.   putchar ('\n');
  6.   printf(a3);
  7. }
  8. putchar ('\n');
  9. printf(a2);

Más compacto y nos ahorramos llamadas a printf (lo que tarda no es el printf en sí, sino llamar al sistema para escribir en la pantalla). Si siguieramos rascando podríamos meter la figura entera en un solo vector y lanzarlo del tiron:
Código
  1. printf(figura);

Una ventaja de estas técnicas esque no tenemos que ceñirnos a dibujar la figura de arriba a abajo. Podemos generarla en el orden que queramos y después imprimirla.

Aunque es una ventaja relativa, ya que el enfoque arriba-abajo es bastante claro y intuitivo.


« Última modificación: 14 Marzo 2014, 21:25 pm por amchacon » En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: tableros
« Respuesta #22 en: 15 Marzo 2014, 10:10 am »


La idea es buena pero ..... sólo me serviría para las líneas superior e inferior ya que las intermedias las tengo que procesar como caracteres para el tema del color.

¿Encuentras tu bandera?.




He modificado el código para que , además del color, se ajuste el tamaño de la consola al dibujo:



Código
  1. /*****************************/
  2.  
  3. #include <stdio.h>
  4. #include <windows.h>
  5. #include <time.h>
  6. #include <stdlib.h>
  7.  
  8. int main()
  9. {
  10.  srand((unsigned) time(NULL));
  11.  int i,j,dim,dim_plus;
  12.  char tamanyo_consola[80];
  13.  printf("\nDimensi\xA2n del Tablero: ");
  14.  fflush (stdout);
  15.  scanf("%d",&dim);
  16.  printf ("\n\n");
  17.  dim_plus=dim*4+1;
  18.  int a0[dim_plus],a1[dim_plus],a2[dim_plus],a3[dim_plus];
  19.  /** linea superior **/
  20.  for (j=0;j<dim_plus;j++){
  21.    if (j==0 )
  22.      a0[j]=218;
  23.    else if (j==dim_plus-1)
  24.      a0[j]=191;
  25.    else if ((j)%4==0 && j<dim_plus-1)
  26.      a0[j]=194;
  27.    else
  28.      a0[j]=196;
  29.  }
  30.  /** linea inferior **/
  31.  for (j=0;j<dim_plus;j++){
  32.    if (j==0 )
  33.      a2[j]=192;
  34.    else if (j==dim_plus-1)
  35.      a2[j]=217;
  36.    else if ((j)%4==0 && j<dim_plus-1)
  37.      a2[j]=193;
  38.    else
  39.      a2[j]=196;
  40.  }
  41.  /** salto de linea...  **/
  42.  /** y dibujo intermedias y laterales  **/
  43.  for (j=0;j<dim_plus;j++){
  44.    if (j==0)
  45.      a1[j]=195;
  46.    else if (j==dim_plus-1)
  47.      a1[j]=180;
  48.    else if ((j)%4==0 && j<dim_plus-1)
  49.      a1[j]=197;
  50.    else
  51.      a1[j]=196;
  52.  }
  53.  /** linea lateral **/
  54.  for (j=0;j<dim_plus;j++){
  55.    if (j==0 )
  56.      a3[j]=179;
  57.    else if (j==dim_plus-1)
  58.      a3[j]=179;
  59.    else if ((j)%4==0 && j<dim_plus-1)
  60.      a3[j]=179;
  61.    else
  62.      a3[j]=219;
  63.  }
  64.  /** imprimimos **/
  65.  sprintf(tamanyo_consola, "MODE %d,%d", dim_plus+1,2*dim+1);
  66.  system(tamanyo_consola);
  67.         /** linea superior **/
  68.  for (j=0;j<dim_plus;j++){
  69.    color (6);
  70.    printf("%c",a0[j]);
  71.  }
  72.  
  73.  putchar ('\n');
  74.  for (j=0;j<dim_plus;j++){
  75.      if ((a3[j]==219) ){
  76.        color (80+rand() % (249-80));
  77.        printf("%c",32);
  78.      }
  79.      else{
  80.        color (6);
  81.        printf("%c",a3[j]);
  82.      }
  83.    }
  84.  
  85.  /** salto de linea...  **/
  86.  /** y dibujo intermedias y laterales  **/
  87.  for (i=0;i<dim-1;i++){
  88.    putchar ('\n');
  89.    for (j=0;j<dim_plus;j++){
  90.      color (6);
  91.      printf("%c",a1[j]);
  92.      color (7);
  93.    }
  94.    putchar ('\n');
  95.    /** linea lateral **/
  96.    for (j=0;j<dim_plus;j++){
  97.      if ((a3[j]==219) ){
  98.        color (80+rand() % (249-80));
  99.        printf("%c",32);
  100.        color (7);
  101.      }
  102.      else{
  103.        color (6);
  104.        printf("%c",a3[j]);
  105.      }
  106.    }
  107.  
  108.    }
  109.  putchar ('\n');
  110.   /** linea inferior **/
  111.   for (j=0;j<dim_plus;j++){
  112.    color (6);
  113.    printf("%c",a2[j]);
  114.  }
  115.  system ("pause>null");
  116.  return 0;
  117. }
  118.  
  119. void color (int n)
  120. {
  121.        SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), n );
  122. }

¡¡¡¡ Saluditos! ..... !!!!


En línea

JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
Re: tableros
« Respuesta #23 en: 18 Marzo 2014, 00:21 am »

No era necesario para cualquier tamaño, sólo necesitaba de 8x8  ;D volviendo a una pregunta que surgió por ahí: ¿cómo hago el primer bloque de tres fichas se almacene en la posición array[0][0], el segundo bloque en la posición array[0][1], etc? ¿Debería guardar un string que contenga tres char(219)? La verdad es que veo que esto no es difícil, pero no logro tener las ideas claras. Disculpadme.
En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
Yoel Alejandro

Desconectado Desconectado

Mensajes: 254



Ver Perfil WWW
Re: tableros
« Respuesta #24 en: 18 Marzo 2014, 02:04 am »

Ya se volvieron unos artistas  :o  :o  :o !!! Mis respetos.
En línea

Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: tableros
« Respuesta #25 en: 18 Marzo 2014, 09:23 am »

No era necesario para cualquier tamaño, sólo necesitaba de 8x8  ;D volviendo a una pregunta que surgió por ahí: ¿cómo hago el primer bloque de tres fichas se almacene en la posición array[0][0], el segundo bloque en la posición array[0][1], etc? ¿Debería guardar un string que contenga tres char(219)? La verdad es que veo que esto no es difícil, pero no logro tener las ideas claras. Disculpadme.

Mira que te lo dije: pon el enunciado exacto. El no hacerlo nos lleva a nosotros a tener que especular y, la verdad, tenemos poco de adivinos y lo único que consigues es  hacernos perder el tiempo en elucubraciones psico-mentales inútiles que acaban cabreando al más pintado.

Es la última hasta que aclares lo del enunciado:


Citar

■  ■  ■  ■  ■  ■  ■  ■
■  ■  ■  ■  ■  ■  ■  ■
■  ■  ■  ■  ■  ■  ■  ■
■  ■  ■  ■  ■  ■  ■  ■
■  ■  ■  ■  ■  ■  ■  ■
■  ■  ■  ■  ■  ■  ■  ■
■  ■  ■  ■  ■  ■  ■  ■
■  ■  ■  ■  ■  ■  ■  ■
┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐
│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│
├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤
│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│█│
└─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘
█  █  █  █  █  █  █  █
█  █  █  █  █  █  █  █
█  █  █  █  █  █  █  █
█  █  █  █  █  █  █  █
█  █  █  █  █  █  █  █
█  █  █  █  █  █  █  █
█  █  █  █  █  █  █  █
█  █  █  █  █  █  █  █

■  ■  ■  ■  ■  ■  ■  ■
■  ■  ■  ■  ■  ■  ■  ■
■  ■  ■  ■  ■  ■  ■  ■
■  ■  ■  ■  ■  ■  ■  ■
■  ■  ■  ■  ■  ■  ■  ■
■  ■  ■  ■  ■  ■  ■  ■
■  ■  ■  ■  ■  ■  ■  ■
■  ■  ■  ■  ■  ■  ■  ■

Código
  1. /**
  2. a0=linea superior
  3. a1=lineas intermedias
  4. a2=linea inferior
  5. a3=lineas laterales
  6. **/
  7. /**
  8. a0=linea superior
  9. a1=lineas intermedias
  10. a2=linea inferior
  11. a3=lineas laterales
  12. **/
  13.  
  14. #include <stdio.h>
  15. #include <stdlib.h>
  16. #include <string.h>
  17.  
  18. #define CUADRADITOS 179,219,179,219,179,219
  19. #define CUADRADITOS1 "\xdb "
  20. #define CUADRADITOS2 "\xfe "
  21. #define ULCORNER 218,196,196,196,196,196    /* upper-left corner, esquina superior izquierda y tres guiones*/
  22. #define RTEE     195,196,196,196,196,196   /*right-tee, letra 'T' apuntando hacia la derecha y tres guiones*/
  23. #define CROSS    197,196,196,196,196,196    /* crossover, cruz grande (de mayor tamaño que el signo '+' y tres guiones) */
  24. #define LTEE     180                /* left-tee, letra 'T' apuntando hacia la izquierda */
  25. #define BTEE     194,196,196,196,196,196   /* bottom-tee, letra 'T' apuntando hacia abajo y tres guiones*/
  26. #define URCORNER 191                /* upper-right corner, esquina superior derecha */
  27. #define LLCORNER 192,196,196,196,196,196   /* lower-left corner, esquina inferior izquierda y tres guiones */
  28. #define TTEE     193,196,196,196,196,196    /* top-tee, letra 'T' apuntando hacia arriba y tres guiones */
  29. #define LRCORNER 217                /* lower-right corner, esquina inferior izquierda */
  30. #define VLINE    CUADRADITOS      /*vertical line, linea vertical y tres espacios*/
  31. #define VLINE_   179                /* vertical line, linea vertical */
  32. #define TOKEN    219                /* ficha o pieza */
  33.  
  34. int main(){
  35.  int i,j,tam;
  36.  char a[]="\xfe ";
  37.  char b[8][8][6];
  38.  
  39. /******* AQUI MATRIZ CUADRADITOS=254=xfe 8X8 *******/
  40. /** SOLO CUADRADITOS SIN LINEAS INTERMEDIAS **/
  41.  
  42.  for (i=0;i<8;i++)
  43.    for (j=0;j<8;j++)
  44.      strcpy( b[i][j], a );
  45.  
  46.  for (i=0;i<8;i++){
  47.    for (j=0;j<8;j++){
  48.      printf("%s ",b[i][j]);
  49.    }
  50.    putchar ('\n');
  51.  }
  52.  int a1[]={RTEE,CROSS,CROSS,CROSS,CROSS,CROSS,CROSS,CROSS,LTEE},
  53.      a0[]={ULCORNER,BTEE,BTEE,BTEE,BTEE,BTEE,BTEE,BTEE,URCORNER},
  54.      a2[]={LLCORNER,TTEE,TTEE,TTEE,TTEE,TTEE,TTEE,TTEE,LRCORNER},
  55.      a3[]={CUADRADITOS,CUADRADITOS,CUADRADITOS,CUADRADITOS,CUADRADITOS,CUADRADITOS,CUADRADITOS,CUADRADITOS,CUADRADITOS};
  56.  tam=sizeof (a1)/sizeof (a1[0]);
  57.  /** linea superior **/
  58.  for (j=0;j<tam;j++)
  59.    printf("%c",a0[j]);
  60.  putchar ('\n');
  61.  /** linea lateral **/
  62.  for (j=0;j<tam;j++)
  63.    printf("%c",a3[j]);
  64.  /** salto de linea...  **/
  65.  /** y dibujo intermedias y laterales  **/
  66.  for (i=0;i<7;i++){
  67.    putchar ('\n');
  68.    for (j=0;j<tam;j++)
  69.        printf("%c",a1[j]);
  70.      putchar ('\n');
  71.      for (j=0;j<tam;j++)
  72.          printf("%c",a3[j]);
  73.  }
  74.  /** linea inferior **/
  75.  putchar ('\n');
  76.  for (j=0;j<tam;j++)
  77.    printf("%c",a2[j]);
  78.  putchar ('\n');
  79.  
  80. /******* AQUI MATRIZ SOLA DE CUADRADITOS=219=xdb 8X8 *******/
  81.  
  82.  for (i=0;i<8;i++){
  83.    for (j=0;j<8;j++){
  84.      printf("%s ",CUADRADITOS1);
  85.    }
  86.    putchar ('\n');
  87.  }
  88.  putchar ('\n');
  89.  
  90. /******* AQUI UNA MATRIZ SOLA DE CUADRADITOS=254=xfe 8X8 *******/
  91.  
  92.  for (i=0;i<8;i++){
  93.    for (j=0;j<8;j++){
  94.      printf("%s ",CUADRADITOS2);
  95.    }
  96.    putchar ('\n');
  97.  }
  98.  putchar ('\n');
  99.  
  100.  return 0;
  101. }

¡¡¡¡ Saluditos! ..... !!!!


En línea

JonaLamper


Desconectado Desconectado

Mensajes: 394



Ver Perfil
Re: tableros
« Respuesta #26 en: 18 Marzo 2014, 10:31 am »

Lo siento leo. No quería ponerte el enunciado porque... bueno, sé que aquí todos estamos para ayudarnos, pero no querría coger una cosa hecha por ti y copiarla sin más, por eso solo te pregunté cosas exactas, problemas con los que me iba encontrando a medida que iba avanzando en el ejercicio, pero claro, tú no sabías exactamente a qué me refería al no tener el enunciado.

Esta noche lo pongo. Y si no es mucha molestia, cuando lo leas, no pretendo hagas un código y me lo enseñes, preferiría que me lo explicarás o que me dijeras cómo lo harías tú, pero ante todo, no hacerlo.

Gracias y disculpa una vez más, sé lo que vale el tiempo invertido en ayudar de forma desinteresada a los demás.
En línea

Utilizar palabras para hablar de palabras es como utilizar un lápiz para hacer un dibujo de ese lápiz sobre el mismo lápiz.
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: tableros
« Respuesta #27 en: 18 Marzo 2014, 11:55 am »


Buuuueno, vale.

¡¡¡¡ Saluditos! ..... !!!!


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: tableros
« Respuesta #28 en: 19 Marzo 2014, 10:59 am »

No era necesario para cualquier tamaño, sólo necesitaba de 8x8  ;D volviendo a una pregunta que surgió por ahí: ¿cómo hago el primer bloque de tres fichas se almacene en la posición array[0][0], el segundo bloque en la posición array[0][1], etc? ¿Debería guardar un string que contenga tres char(219)? La verdad es que veo que esto no es difícil, pero no logro tener las ideas claras. Disculpadme.

Disculpad@ estás y a la espera de que pongas el enunciado, te adelanto una posible solución, en el supuesto de que el problema radique en cómo extraer una matriz de 8x8 a partir de las matrices iniciales, estando esta matriz de 8x8 constituida por cadenas de tres cuadraditos. Aunque otra forma sería obtenerla directamente.

Te explico el proceso:

* la matriz inicial a usar debe ser de 8x8x4, sí, tridimensional. Esto es debido en que para generarla hemos de recorrer, además de las 8 filas y 8 columnas,también  hemos de tener en cuenta que cada elemento almacenado en esa matriz de 8x8 es  de cuatro caracteres .....sí, cuatro, los tres cuadraditos y el caracter nulo. Necesitaremos por lo tanto:

* 1 * un primer for:1->8 para recorrer la matriz en filas.

* 2 * un segundo for:1->8  para recorre la matriz en columnas.

* 3 * un tercer for:1->tam para el for anterior recorrerlo internamente, ya que se compone de los caracteres extremos más los intermedios, tanto cuadraditos como líneas verticales.

Y hemos de quedarnos en este último for con los cuadraditos. ¿Cómo?. Teniendo en cuenta el hecho de cómo se componen las filas LV=línea vertical=179 y de cuadraditos = C=219=\xdb:

     LV     C    LV    C   LV    C   LV    C   LV    C   LV    C   LV    C   .....  
      0      1    2     3    4     5     6    7    8     9    10   11  12   13......
k =          0          1           2          0           1           2          0 .....

Observa que para "pillar" sólo los cuadraditos, que son los números impares, en el último for se empieza desde uno y se avanza con paso 2: i+=2.

Pero además tienes que usar una variable auxiliar k tal que cada tres cuadraditos "pillados", y después de añadirle el caracter nulo, se inicie a cero y se incremente el array.  ES decir empiezas en array[0][0] y una vez que k haya llegado a dos, pasará a valer otra vez cero y empezarás a rellenar el array[0][1] y así sucesivamente.

No te pongo ahora mismo la respuesta porque me has pedido expresamente que tan sólo te lo explicara para tú intentar sacarlo.

Espero que la explicación te encamine hacia la solución.

Por respeto a los seguidores de este tema, que no son pocos, pondré en un día o dos la respuesta.

Ahora te adelanto el código que imprime la matriz, para que veas que es efectivamente de 8x8, y una salida del programa:


Código
  1. for (i=0;i<8;i++){
  2.    printf("\t\t");
  3.    for (j=0;j<8;j++){
  4.      printf("%s  ",c[i][j]);
  5.    }
  6.    puts ("\n");
  7.  }

Citar
             
  A PARTIR DE LA MATRIZ DE 8X8



                ███  ███  ███  ███  ███  ███  ███  ███

                ███  ███  ███  ███  ███  ███  ███  ███

                ███  ███  ███  ███  ███  ███  ███  ███

                ███  ███  ███  ███  ███  ███  ███  ███

                ███  ███  ███  ███  ███  ███  ███  ███

                ███  ███  ███  ███  ███  ███  ███  ███

                ███  ███  ███  ███  ███  ███  ███  ███

                ███  ███  ███  ███  ███  ███  ███  ███



                DE FORMA DIRECTA

                ███  ███  ███  ███  ███  ███  ███  ███

                ███  ███  ███  ███  ███  ███  ███  ███

                ███  ███  ███  ███  ███  ███  ███  ███

                ███  ███  ███  ███  ███  ███  ███  ███

                ███  ███  ███  ███  ███  ███  ███  ███

                ███  ███  ███  ███  ███  ███  ███  ███

                ███  ███  ███  ███  ███  ███  ███  ███

                ███  ███  ███  ███  ███  ███  ███  ███



Y para los que estén aburridos y le peguen a la criptografía, aquí pongo el código solución cifrado. He usado un método propio, pero no lo he querido hacer totalmente indescifrable por si se animan ..... pero tranquilos, como comenté próximamente pondré la solución, no es plan de dejar a nadie colgado en este tema:


Citar
Cifrado es:

Æ¿å| æâyiàX¼ÇD¿wD1  lÜ╗ aø`5_}QbM┤^muÄ`;    ê╝x anVåUæG_Hòpp3ñU>      m║© *ÿFrxè
e┐ŪHøYêEz┼]N        sê«┐d,xc▬        ¬ç 9tïkG╬;☼          ö{ìï¡ëë®®ÜCJgöÜu3]Öc│
ïes?6▼          «?àå↕+        Ö♫↓        û¡Åkæ▲)          ⌂Åî®Øo_Ññ½]Zt:CeKA
      skIe_♀        ╣VP      ×E\    è7E  ©?↑H9  æçºtìÉà [üx║OOm ((M  á⌂ú NÅê3T╗c
fiÁnÇyº#4    ¡┐«x|~?[óøêùDvs\↕    ÿ¡║ /àZOKîLlQ£2Xv┤+D      Ö¥┐┐øöK.|©  YSqvóuñü
¼9è]8    Ê(W    üæî╩ A$á|ixoF↓  ø@¶  î╗úvu╗s u3øÅtsé┴Ñ╝í<í♣E


Aunque me temo que el procesador de esta página "baile" algunos símbolos extraños para él.


¡¡¡¡ Saluditos! ..... !!!!



« Última modificación: 20 Marzo 2014, 11:37 am por leosansan » En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: tableros
« Respuesta #29 en: 19 Marzo 2014, 11:28 am »

Aunque me temo que el procesador de esta página "baile" algunos símbolos extraños para él.

Conviértelo a base64 y así no habrá problemas con el código cifrado... total, el que quiera descifrarlo únicamente tiene que añadir la decodificación de base 64 antes de ponerse a decodificar en serio.
En línea

Páginas: 1 2 [3] 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Tableros super mario « 1 2 3 4 »
Juegos y Consolas
Castiblanco 37 12,948 Último mensaje 13 Octubre 2008, 23:35 pm
por Castiblanco
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines