Ver Mensaje Individual
  #5 (permalink)  
Antiguo 08/12/2015, 00:21
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Serie de Fibonacci, pero de letras.

Aún no he analizado tu código.

He podido hacer un traductor de números con sistema de 10 dígitos o decimal (aunque no son decimales, son enteros, vaya nombres ambiguos le ponen xP ) a hexadecimal, basado en esto:
https://www.youtube.com/watch?v=Myr1vaHjCtM
1:00

Pero claro la idea no es esa, sólo lo hice para practicar. Tiene además un problema previsible: No da valores con 0 adelante. Y los necesito así:
Valor real______________mi valor
0____________________0 o "A"
1____________________1 o "B"
...
26___________________26 o "Z"
27___________________¿0 y 0? o "AA"

Si usara el método del video tendría que dividir entre 27 en vez de 8, pero como dije eso no me da resultados con 0 delante, el 27 lo traduciría a ¿1 y 0? o "BA".

¿Cómo puedo lograrlo?

Si volvemos al tema de los hexadecimales, que sería más sencillo, quisiera lograr algo así:
Valor real______________mi valor "hexadecimal"
0____________________0
1____________________1
...
15___________________15 o "F"
16___________________¿0 y 0?

Lo que se me ocurre es crear un "espacio" o caracter que no use. O sea, este es mi traductor:
Código AS:
Ver original
  1. Escena 1
  2.    actions for fotograma 1
  3.       // Inician datos.
  4.       N = 1;
  5.       Data = "0123456789ABCDEF";
  6.       Resp = "";
  7.    actions for fotograma 2
  8.       // Reset...
  9.       NDividiéndose = N;
  10.       Hexa = "";
  11.    actions for fotograma 3
  12.       if (NDividiéndose<16) {
  13.          // Es el último char que se agrega.
  14.          Hexa = Data.charAt(NDividiéndose) + Hexa;
  15.          Resp = Hexa+"\n"+Resp;
  16.          // Ahora el siguiente número a traducir.
  17.          N = N+1;
  18.          gotoAndPlay (2);
  19.       }
  20.    actions for fotograma 4
  21.       // Traduciendo num a chars.
  22.       NextNDividiéndose = Math.floor(NDividiéndose/16);
  23.       Resto = NDividiéndose-NextNDividiéndose*16;
  24.       Hexa = Data.charAt(Resto) + Hexa;
  25.       NDividiéndose = NextNDividiéndose;
  26.       gotoAndPlay (3);

Lo que estoy planteando es definir Data así:
Data = " 0123456789ABCDEF";
¿Cómo traduciría los números del 0 al 15? Tomando el caracter correspondiente +1.
¿Y el 16? 0 y el caracter correspondiente +1. Es decir, 16/16=1 y se toma el caracter 1, o sea 0. Y el resto de la división es 0, por lo que se tomaría el caracter espacio, pero como en este caso le sumamos 1 es el 0, que junto con el otro forman 00, lo que busco.
De esta forma logro que aparezcan 0s delante, pero si me da resto 0 en un punto intermedio -no al final- entonces debería sumarle 1, pero si hago eso los resultados con 0 delante aparecerán 2 veces, no sé, hay que pulir esto o hallar otra forma.