tableros

Iniciado por anabelanggie, 4 Marzo 2014, 16:44 PM

0 Miembros y 2 Visitantes están viendo este tema.

leosansan

Cita de: yoel_alejandro en  8 Marzo 2014, 17:08 PM
Interesante la simplificación de leosansan, ventajas del trabajo en equipo
.................................................
Ahora otra vez leo, me parece interesante tu simplificación del código, pero explícamente la aritmética usada de 12, 18, 36, etc ..... No entiendo esas fórmulas, y creo que también hubiera sido bueno comentariar esa explicación en el programa, los demás no somos adivinos jejejeje (broma)


¿Es una coña,no?.

Por si acaso simple cuestión de mates ,,,,sólo te contaré que se corresponden con posiciones centrales de los espacios en blanco, ni a la derecha ni a la izquierda de las paredes laterales, centrados ..... haz números ..... siempre que a mi no se me haya ido el baifo !!!. No olvides que se trataba de no hacerle la tarea al que inicio el tema, así que algo de oscurantismo es inevitable.


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



.

Yoel Alejandro

Pero indistintamente, lo cortés no quita lo valiente, siempre es bueno comentariar al menos a qué refieren las fórmulas aunque no se de una explicación detallada. P.ej.: posiciones centrales de las casillas.

Ya sabes, documentar el código para que sea más fácil de mantener por otra persona o por tí mismo en el futuro. Una vez leí un chiste de programadores que el código más odiado del mundo puede llegar a ser ........ tu propio código (de 6 meses atrás). Por que ya no te acuerdas de qué hacía ni como, jajajaja

espero no lo tomes a mal, saludos!!!
Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)

leosansan


Te lo repito por n-ésima vez, se trataba de resolver un problema pero no de explicarlo, ya que el autor del tema no había puesto ni una misera línea de código, de ahí el cierto oscurantismo. ¿Te imaginas que copie mi código y al entregarlo a su profesor este le pregunte el significado de esos números?  :laugh: :laugh: :laugh:

Otra cosa distinta es "mi" código, el que yo me guardo, donde va una descripción del problema que se plantea y diversa notitas aclaratorias, pero que no pongo  cuando lo cuelgo en el foro. ¡¡¡Que se lo curre un poquito!!!,.....


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



amchacon

Cita de: yoel_alejandro en  5 Marzo 2014, 19:28 PM
"Yo, en particular, estoy muy contento con tus aportes ya que la mayoría de los expertos lo son más de C++ y a mí me interesa más el C puro y duro"

Jejeje, pues sí, es un dicho que entre más bajo el nivel más duro es el programador, jeje. De hecho me impongo como costumbre personal tratar de hacer los programas en C puro, salvo que sea estrictamente necesario usar C++ (por ejemplo si se requieren clases).
Nunca es estrictamente necesario usar C++, incluso C se puede orientar a objetos si se quiere.

Cita de: yoel_alejandro en  5 Marzo 2014, 19:28 PMJejeje, pues sí, es un dicho que entre más bajo el nivel más duro es el programador, jeje.
Pero no mejor ;)

Cita de: leosansan en 12 Marzo 2014, 04:46 AMOtra cosa distinta es "mi" código, el que yo me guardo, donde va una descripción del problema que se plantea y diversa notitas aclaratorias, pero que no pongo  cuando lo cuelgo en el foro. ¡¡¡Que se lo curre un poquito!!!,.....
Me intriga lo que guardas en esa carpeta... Deben ser GB y GB de códigos Oo

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

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

JonaLamper

#14
Creo que lo que el usuario decía, era que dentro de cada celda van a ir 3 fichas. Algo así:


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

Y a su vez, cuando hayas dibujado ese tablero 8x8 con sus respectivas fichas, debes relacionar esas fichas con un array bidimensional de forma que cada 3 fichas sea una posición del array. Lo cual me imagino será un array del tipo:  typedef  tipo_array  nombre_array [8][8];

Pd: ups... salió mal el dibujo  :-( bueno, creo que se entiende  ;D
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

#15
Cita de: JonaLamper en 12 Marzo 2014, 11:37 AM
Creo que lo que el usuario decía, era que dentro de cada celda van a ir 3 fichas. Algo así:


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


¿Algo así?:

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

Cita de: amchacon en 12 Marzo 2014, 11:35 AM
.................................
Me intriga lo que guardas en esa carpeta... Deben ser GB y GB de códigos Oo ...............................


Pues estas en lo cierto, son varios GB de códigos, nunca sabes lo que puedes reaprender de ellos. Es como releer un libro, siempre encuentras cosas a mejorar y/o recordar.


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



JonaLamper

Eso es leo. Recuerdo ese ejercicio. La cosa era como referenciar cada bloque de 3 fichas a una posición de un array bidimensional.

Una idea podría ser que cada bloque de 3 fichas sea un string que almacene el código ascii que corresponda y después guardar dicho string en un array.

¿Sería una buena idea?
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

#17
Cita de: JonaLamper en 13 Marzo 2014, 00:36 AM
Eso es leo. Recuerdo ese ejercicio. La cosa era como referenciar cada bloque de 3 fichas a una posición de un array bidimensional.

Una idea podría ser que cada bloque de 3 fichas sea un string que almacene el código ascii que corresponda y después guardar dicho string en un array.

¿Sería una buena idea?

No me queda clara la idea. Tendrías que poner el enunciado completo.

Pero por lo que capto, eso de referenciar me suena a algo como esto:



Citar

┌───┬───┬───┬───┬───┬───┬───┬───┐
│█1█│█1█│█1█│█1█│█1█│█1█│█1█│█1█│
├───┼───┼───┼───┼───┼───┼───┼───┤
│█1█│█1█│█1█│█1█│█1█│█1█│█1█│█1█│
├───┼───┼───┼───┼───┼───┼───┼───┤
│█1█│█1█│█1█│█1█│█1█│█1█│█1█│█1█│
├───┼───┼───┼───┼───┼───┼───┼───┤
│█1█│█1█│█1█│█1█│█1█│█1█│█1█│█1█│
├───┼───┼───┼───┼───┼───┼───┼───┤
│█1█│█1█│█1█│█1█│█1█│█1█│█1█│█1█│
├───┼───┼───┼───┼───┼───┼───┼───┤
│█1█│█1█│█1█│█1█│█1█│█1█│█1█│█1█│
├───┼───┼───┼───┼───┼───┼───┼───┤
│█1█│█1█│█1█│█1█│█1█│█1█│█1█│█1█│
├───┼───┼───┼───┼───┼───┼───┼───┤
│█1█│█1█│█1█│█1█│█1█│█1█│█1█│█1█│
└───┴───┴───┴───┴───┴───┴───┴───┘
Process returned 0 (0x0)   executi

En quote no queda bien, se ve mejor en una captura de pantalla:


Y eso se logra sencillamente con una condición en la linea lateral y las intermedias:

Código (cpp) [Seleccionar]

          if ((j+2)%4==0)
           printf("1");
         else
           printf("%c",a1[j]/* o a3[j] en donde toca*/);


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




JonaLamper

#18
No lo tengo, pero conseguí una imagen del tablero completo:



En primer lugar pido perdón porque el siguiente código, es el código con la menor eficiencia que he visto en mi vida (ignorad los typedef que son para usarlos más tarde).

Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>
#include <windows.h>
using namespace std;

const int FILAS = 8;
const int COLUMNAS = 8;

const char ascii218 = 218;
const char ascii196 = 196;
const char ascii194 = 194;
const char ascii179 = 179;
const char ascii195 = 195;
const char ascii197 = 197;
const char ascii192 = 192;
const char ascii193 = 193;
const char ascii217 = 217;
const char ascii191 = 191;
const char ascii180 = 180;
const char ascii219 = 219;

typedef enum {magenta, amarillo, azul, verde, neutro} tFicha;
typedef tFicha tTablero[FILAS][COLUMNAS];


int main() {

//Linea superior
for (int i = 0; i <= 33; i++) {
if (i == 0) {
cout << ascii218;
}
else if (i == 33) {
cout << ascii191 << endl;
}
else if (i%4 == 0) {
cout << ascii194;
}
else {
cout << ascii196;
}
}
//Lineas intermedias
for (int j = 0; j < 7; j++) {
for (int i = 0; i < 33; i++) {
if (i%4 == 0) {
cout << ascii179;
}
else {
cout << ascii219;
}
}
//hacemos un saltito de linea
cout << endl;
for (int i = 0; i < 33; i++) {
if (i == 0) {
cout << ascii195;
}
else if (i == 33) {
cout << ascii180 << endl;
}
else if (i%4 == 0) {
cout << ascii197;
}
else {
cout << ascii196;
}
}
//hacemos otro saltito de linea
cout << endl;
}
//Linea inferior
for (int i = 0; i < 33; i++) {
if (i%4 == 0) {
cout << ascii179;
}
else {
cout << ascii219;
}
}
//hacemos un saltito de linea
cout << endl;
for (int i = 0; i < 33; i++) {
if (i == 0) {
cout << ascii192;
}
else if (i == 33) {
cout << ascii217 << endl;
}
else if (i%4 == 0) {
cout << ascii193;
}
else {
cout << ascii196;
}
}
return 0;
}


Ahora bien, tengo dos problemas... el primero es que no sé cómo solucionar la parte de la derecha de la tabla (las "sobras" que salen remarcadas en rojo). Y el segundo, es hacer algo más eficiente ese código (realmente lo importante es que funcione, pero si además es eficiente sería más mejor  ;D).



Un saludo y si a alguien se le ocurre cualquier cosa por pequeña que sea, no dude en ponerla ^^
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.

amchacon

#19
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).
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar