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 General
| | |-+  Evitar que se muestren dibujos repetidos.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Evitar que se muestren dibujos repetidos.  (Leído 3,624 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.420


Hackentifiko!


Ver Perfil
Evitar que se muestren dibujos repetidos.
« en: 18 Diciembre 2023, 06:40 am »

Tengo 2 versiones, una genera dibujos (blanco y negro nada más) en lo que sería una hoja de 2x2 píxeles, y la otra en una de 3x3.

https://drive.google.com/file/d/17O2VcSDGRvdzashTC41hPVteh6cDRN_u/view?usp=sharing

Si alguien no puede ver el video ahí dígame qué mensaje le pone o qué pasa porque alguien me dijo que no podía verlo, no tengo idea por qué.

Código de la versión 2x2:
Código
  1. Escena 1
  2.   actions for fotograma 1
  3.      Puntero = 4;
  4.      function Variar () {
  5.         PixelaModificar = "ColordePixel"+Puntero;
  6.         ColordePixelaModificar = eval(PixelaModificar);
  7.         // ¿El pixel puede cambiar de color?
  8.         if (ColordePixelaModificar<1) {
  9.            // Sí, cambiarlo.
  10.            set (PixelaModificar, ColordePixelaModificar+1);
  11.            Col = new Color("iPixel"+Puntero);
  12.            Col.setRGB(parseInt(0, 16));
  13.            DibujoListo = "Sí";
  14.            // Dar tiempo de ver el dibujo.
  15.            // Volver.
  16.            Puntero = 4;
  17.            gotoAndPlay (4);
  18.         } else {
  19.            // No, resetearlo.
  20.            set (PixelaModificar, 0);
  21.            Col = new Color("iPixel"+Puntero);
  22.            Col.setRGB(parseInt("FFFFFF", 16));
  23.            // ¿Hay un pixel anterior?
  24.            if (Puntero>1) {
  25.               // Sí, apuntar a ese.
  26.               Puntero = Puntero-1;
  27.               // Continuar haciendo el dibujo.
  28.               DibujoListo = "No";
  29.            } else {
  30.               // Fin.
  31.               DibujoListo = "Sí";
  32.               gotoAndStop (51);
  33.            }
  34.         }
  35.      }
  36.   actions for fotograma 2
  37.      Variar();
  38.   actions for fotograma 3
  39.      Variar();
  40.      if (DibujoListo == "No") {
  41.         gotoAndPlay (2);
  42.      }
  43.   actions for fotograma 50
  44.      gotoAndPlay (2);

Los píxeles están colocados manualmente nombrados así:
1_2
3_4

La versión 3x3 es casi igual, los píxeles son:
1_2_5
3_4_6
7_8_9

¿Qué es repetición?
Hay 2 "niveles" a tener en cuenta.

Uno es que lo generado en una versión no debe ser generado en la otra. Es decir, los dibujos generados en la versión 3x3 deben tener al menos 1 píxel oscuro en una de las posiciones del 5 al 9, las nuevas posibles posiciones. Por eso en principio los nombré así, no es que me guste esa forma. Ya que los valores son 1 o 0, si sumo todos los valores esos y da 0, significa que es repetido (aún no lo apliqué). Para que las imágenes generadas fuesen menos confusas de ver (ya que el patrón es un poco extraño, debería ir desde abajo a la izquierda, subiendo, pero va de arriba a abajo en cierto punto), me gustaría otro método, escucho ideas.

El otro "nivel" es más difícil de resolver, es sobre considerar relaciones entre píxeles sin considerar las posiciones. Por ejemplo esto (1=negro, 0=blanco):
10
10
sería lo mismo que esto:
01
01
En ambos casos es un píxel debajo del otro, sólo cambia donde están ubicados, el dibujo es el mismo.
También, esto:
011
110
011
lo considero igual a esto:
110
011
110
Es un reflejo horizontal.
Pero a los reflejos verticales los considero dibujos distintos. Bueno, "b" es distinto de "d", pero en dibujos generalmente da igual que una cosa esté a la izquierda o derecha, en cambio lo que esté arriba o abajo para mí cambia bastante la cosa, puedo imaginarlo al revés pero es más fácil si se generan ambos dibujos, por eso esos los quiero ver a ambos.

¿Alguna idea? Tal vez habría que programarlo de otro modo "desde 0"...


« Última modificación: 18 Diciembre 2023, 06:44 am por Tachikomaia » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines