Foro SofosAgora

Foro abierto a los intereses de sus usuarios. Debate, aprende y diviértete.
Fecha actual 14 Nov 2018, 08:49

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 7 mensajes ] 
Autor Mensaje
NotaPublicado: 05 Nov 2018, 04:00 
Desconectado
Avatar de Usuario

Registrado: 10 Ago 2011, 20:39
Mensajes: 8605
Llamemos a esto:
1
2
3, 4
3
3, 5
6, 7, 8
4
3, 6
6, 7, 9
10, 11, 12, 13
etc
...la serie base.

Como ven, sus elementos pueden ser un número o subseries de números. Ahí están siempre en orden pero no necesariamente es así.

Se describe o produce (en resumen) así:
Código:
El 1er número es 1.
El largo actual (ActualL) es 1.
El largo máximo (MaxL) es 1.
Repetir:
   Si ActualL < MaxL
      ActualL aumenta 1.
      Sumar 1 al último número de la subserie con ese largo, y si llega al máximo (sigo hablando del número, no del largo) resetearlo y aumentar el delantero y así sucesivamente. Es igual a aumentar un número cualquiera, acá el tema es que los elementos no van del 0 al 9 sino del 1 hasta aún no sé cuánto, pero más de 100. Además, si por ejemplo el largo es 2 y los números son máximo, máximo, queda 1, 1, no se agregan números (sino cambiaría el largo).
   Sino
      Crear una serie compuesta de ActualL números, que comience desde el último número usado+1.
      ActualL vuelve a ser 1
      MaxL aumenta 1.
No sé si estoy olvidando algo importante, una descripción más detallada sería esta:
Spoiler: show
Código:
Escena 1
   actions for fotograma 1
      Item1 = "WispG";
      Item2 = "ShadeG";
      Item3 = "DryadG";
      Item4 = "AuraG";
      Item5 = "SalaG";
      L1P1 = 0;
      MinL = 1;
      ActualL = 1;
      MaxL = 1;
      FirstL1 = "TakoB ";
      function Concatenarytrace () {
         Print = "";
         Cursor = 0;
         do {
            Cursor = Cursor+1;
            Print = Print+eval("Item"+eval("L"+ActualL+"P"+Cursor))+" ";
         } while (Cursor<ActualL);
         trace (Print);
         if (Print == eval("FirstL"+ActualL)) {
            // Si lo mostrado es igual al grabado como último...
            // ...no se hacen más exp con ese L.
            MinL = MinL+1;
         }
         if (ActualL<MaxL) {
            // Si el largo es aumentable, aumenta.
            ActualL = ActualL+1;
         } else {
            // Sino, queda al mínimo pero el máximo aumenta.
            // Se genera el límite para el nuevo MaxL.
            if (MaxL<7) {
               MaxL = MaxL+1;
               set ("FirstL"+MaxL, "");
               Cursor = 1;
               LXPY = MaxL+eval("L"+ActualL+"P1")+Cursor-1;
               if (5<LXPY) {
                  LXPY = 1;
               }
               do {
                  set ("L"+MaxL+"P"+Cursor, LXPY);
                  set ("FirstL"+MaxL, eval("FirstL"+MaxL)+eval("Item"+LXPY)+" ");
                  Cursor = Cursor+1;
                  LXPY = LXPY+1;
                  if (5<LXPY) {
                     LXPY = 1;
                  }
               } while (Cursor<MaxL);
               if (LXPY == 1) {
                  LXPY = 6;
               }
               LXPY = LXPY-1;
               set ("L"+MaxL+"P"+Cursor, LXPY);
               set ("FirstL"+MaxL, eval("FirstL"+MaxL)+eval("Item"+LXPY)+" ");
            }
            ActualL = MinL;
         }
         gotoAndPlay (2);
      }
   actions for fotograma 2
      Cursor = ActualL;
   actions for fotograma 3
      if (eval("L"+ActualL+"P"+Cursor)<5) {
         // Si el char es aumentable, aumenta.
         set ("L"+ActualL+"P"+Cursor, eval("L"+ActualL+"P"+Cursor)+1);
         Concatenarytrace();
      }
   actions for fotograma 4
      // El char no es aumentable, ergo se resetea.
      set ("L"+ActualL+"P"+Cursor, 1);
      if (1<Cursor) {
         // Si Cursor puede bajar, baja.
         Cursor = Cursor-1;
      } else {
         // Sino, se muestra el reseteado.
         Concatenarytrace();
      }
   actions for fotograma 5
      if (eval("L"+ActualL+"P"+Cursor)<5) {
         // Si el char es aumentable, aumenta.
         set ("L"+ActualL+"P"+Cursor, eval("L"+ActualL+"P"+Cursor)+1);
         Concatenarytrace();
      } else {
         // Sino, se resetea y reinicia un proceso.
         gotoAndPlay (4);
      }
Aunque los números se cambian por ítems, está limitado a 5, largo 7, y tiene un error o más de uno que no viene/n al caso. Creo que nada más...
Quiero transformar la serie en esto:
1
3, 4
2
6, 7, 8 si se cumplen ciertas condiciones, sino saltear.
3, 5
(6, 7, 8) o (10, 11, 12, 13) o saltear, dependiendo de ciertas condiciones.
(6, 7, 8) o 6, 7, 9, dependiendo de si 6, 7, 8 se usó o no.

El cambio es que en los momentos pares puede haber una serie paralela, compuesta de subseries de largo+1 al anterior. En cuanto a qué números contiene, eso es parte de lo complejo, porque usa los que habría en la serie base.
La serie base sólo cambia en que al producir un largo por 1era vez, le suma 1 al último número, no repite una subserie ya producida.

Lo que quiero, como dice el título, es obtener las subseries de la serie paralela, a partir de la serie base que ya tenga.

Si por ejemplo tengo
1
3, 4
2
...debo poder obtener 6, 7, 8 sin hacer previamente la serie.

Si tengo
1
3, 4
2
6, 7, 8
3, 5
...debo poder obtener 10, 11, 12, 13.

Si tengo
1
3, 4
2
3, 5
...debo poder obtener 6, 7, 8

Por lo que veo es algo como:
Último número de la subserie anterior más larga + 2 - veces que se salteó el crear un nuevo largo.

Si por ejemplo tengo
1
3, 4
2
...debo hacer 4+2 para obtener 6, el resto es sólo sumar 1.

Si tengo
1
3, 4
2
6, 7, 8
3, 5
...debo hacer 8+2 para obtener 10...

1
3, 4
2
salteado
3, 5
...debo hacer 5+2-1 para obtener 6...

Bueno... probaré a ver si funciona o no. ¿Qué creen? ¿saben (o se les ocurre) un método más simple?

_________________
Si no puedes hacerlo, intenta primero hacer algo más simple aunque similar.


Última edición por Tachikomaia el 05 Nov 2018, 04:11, editado 1 vez en total

Arriba
 Perfil  
Responder citando  
NotaPublicado: 05 Nov 2018, 04:09 
Desconectado
Avatar de Usuario

Registrado: 10 Ago 2011, 20:39
Mensajes: 8605
Eh, acabo de ver que el número inicial de las subseries con nuevo máximo largo forman una serie que ya he tratado y me han comentado que tiene un nombre y formula.
1, 3, 6, 10.
El número siguiente es el anterior + la posición actual.
3 = 1+2
6 = 3+3
10 = 6+4
So... en mi caso sería ActualL+1er número de la anterior subserie más larga. Como se puede resetear tengo que guardarlo cuando recién se crea, y hacer otros arreglos, pero bue, creo que es más fácil que lo que había pensado.

_________________
Si no puedes hacerlo, intenta primero hacer algo más simple aunque similar.


Arriba
 Perfil  
Responder citando  
NotaPublicado: 10 Nov 2018, 02:14 
Desconectado
Avatar de Usuario

Registrado: 13 Oct 2010, 18:30
Mensajes: 11388
Ubicación: Bogotá
No entendí nada.

_________________
Una economía fundada en el empoderamiento, la autonomía y la autodeterminación de los trabajadores.


Arriba
 Perfil  
Responder citando  
NotaPublicado: 10 Nov 2018, 19:19 
Desconectado

Registrado: 04 Nov 2011, 15:00
Mensajes: 8342
Juan Zuluaga escribió:
No entendí nada.


Es lo que nos pasa contigo...


Arriba
 Perfil  
Responder citando  
NotaPublicado: 10 Nov 2018, 20:02 
Desconectado

Registrado: 05 Mar 2013, 14:43
Mensajes: 10278
Yo a Jvahn lo entiendo, a Tachi no porque ni él se entiende.


Arriba
 Perfil  
Responder citando  
NotaPublicado: 10 Nov 2018, 20:29 
Desconectado
Avatar de Usuario

Registrado: 10 Jun 2011, 21:52
Mensajes: 4520
Yo sé que con esfuerzo puedo entender a cualquiera (al menos en este foro), porque en alguna ocasión lo he hecho. Pero, ¿para qué malgastar esfuerzos?

Imagen

_________________
Spoiler: show
Imagen


Arriba
 Perfil  
Responder citando  
NotaPublicado: 11 Nov 2018, 00:11 
Desconectado
Avatar de Usuario

Registrado: 13 Oct 2010, 18:30
Mensajes: 11388
Ubicación: Bogotá
ManuelB escribió:
Juan Zuluaga escribió:
No entendí nada.


Es lo que nos pasa contigo...



Es que soy selectivo.

_________________
Una economía fundada en el empoderamiento, la autonomía y la autodeterminación de los trabajadores.


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 7 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro

Buscar:
Saltar a:  
POWERED_BY
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO