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


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ¿Cómo me conviene poner el código para dibujos simétricos?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo me conviene poner el código para dibujos simétricos?  (Leído 110 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.681


Hackentifiko!


Ver Perfil
¿Cómo me conviene poner el código para dibujos simétricos?
« en: Ayer a las 08:10 »

El programa es un generador de 3 tipos de imágenes por ahora:

MuchoAzar: Lo que sería cada píxel lo pinta de un color al azar de una lista:


Cuadrados:


Y el que intento agregar: AzarrazA, que es como el azar pero simétrico así horizontalmente como se muestran las letras, no verticalmente.

Cuando se presiona un botón para cambiar el modo (en este caso a MuchoAzar), sucede esto:
Código
  1. on (release) {
  2. Modo = "MuchoAzar";
  3. RepintarCuadraditos();
  4. }

Es decir se usa esto:
Código
  1. function RepintarCuadraditos () {
  2. NroDelCuadroaRepintar = 0;
  3. do {
  4. NroDelCuadraditoaRepintar = 0;
  5. // p representa un ".", "punto".
  6. Cuadro_pCuadradito = "Cuadro"+NroDelCuadroaRepintar+".Cuadradito";
  7. if (Modo == "Cuadrados") {
  8. // Inicialmente los cuadraditos del cuadro tendrán...
  9. // el mismo color:
  10. ColorDelCuadro = PosiblesColores[random(PosiblesColores.length)];
  11. trace("ColorDelCuadro: "+ColorDelCuadro);
  12. }
  13. do {
  14. Cuadro_pCuadradito_ = Cuadro_pCuadradito+NroDelCuadraditoaRepintar;
  15. ParaColorDeCuadradito = new Color(Cuadro_pCuadradito_);
  16. if (Modo == "MuchoAzar") {
  17. ParaColorDeCuadradito.setRGB(PosiblesColores[random(PosiblesColores.length)]);
  18. } else if (Modo == "Cuadrados") {
  19. ParaColorDeCuadradito.setRGB(ColorDelCuadro);
  20. }
  21. NroDelCuadraditoaRepintar++;
  22. } while (NroDelCuadraditoaRepintar<Cuadraditos);
  23. NroDelCuadroaRepintar++;
  24. if (Modo == "Cuadrados") {
  25. GenerarCuadrados();
  26. }
  27. } while (NroDelCuadroaRepintar<Cuadros);
  28. }

En ese código debo poner el caso para el modo AzarrazA ¿cómo me conviene ponerlo?
Es que en ese código todos los cuadraditos se pintan de una u otra forma, pero en este caso si están a la derecha del medio (de un cuadro, no de la pantalla) van a tener que imitar el color que se haya seleccionado para su pixel (o cuadradito) opuesto, lo que se me acaba de ocurrir es poner:
Código
  1. if (Modo == "MuchoAzar") {
  2. ParaColorDeCuadradito.setRGB(PosiblesColores[random(PosiblesColores.length)]);
  3. } else if (Modo == "AzarrazA") {
  4. Si el cuadradito a pintar no está a la derecha del centro del cuadro:
  5. ParaColorDeCuadradito.setRGB(PosiblesColores[random(PosiblesColores.length)]);
  6. sino
  7. pintarlo igual que su opuesto
  8. fin del si
  9. } else if (Modo == "Cuadrados") {
  10. ParaColorDeCuadradito.setRGB(ColorDelCuadro);
  11. }

Creo que con eso estaría bien, pensé que no porque tengo la manía de querer evitar ifs, ah, cierto ¿no sería mejor crear un código aparte para los que deba pintar al azar y luego otro para los que deban ser imitaciones? El problema es que parece más complicado hacerlo.


« Última modificación: Ayer a las 08:39 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