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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


  Mostrar Mensajes
Páginas: 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ... 192
211  Programación / Programación General / Evitar que muestre números repetidos, problema con decimales. en: 14 Diciembre 2023, 22:51 pm
Tema similar a uno que hice recientemente, quiero un programa así:
En la 1era vuelta que muestre 1, es decir un número entero.
En la 2nda vuelta que muestre 2 y 0.1, es decir un número entero y un número con 1 decimal.
En la 3era vuelta que muestre 3, 0.2 y 0.01, es decir un número entero, uno de 1 decimal, y uno de 2 decimales.

Los números deben ser siempre mayores a los anteriores de su tipo y deben tener la cantidad de decimales que corresponde, si tiene menos no debe mostrarse en pantalla.

Logré que los números se generen pero no estoy pudiendo lograr que sólo se muestren los diferentes.

Este es el código que tengo:
Código
  1. Escena 1
  2.   actions for fotograma 1
  3.      MaxDecimales = 0;
  4.      N1 = 0;
  5.   actions for fotograma 2
  6.      Decimales = 0;
  7.   actions for fotograma 3
  8.      Nombre = "N"+Decimales;
  9.      N = (eval(Nombre)*Math.pow(10, Decimales)+1)/Math.pow(10, Decimales);
  10.      // Guardar el valor en la lista correspondiente.
  11.      set (Nombre, N);
  12.      if (Decimales>0) {
  13.         LargoMinimodeDiferencia = Decimales+2;
  14.      } else {
  15.         LargoMinimodeDiferencia = Decimales+1;
  16.      }
  17.      if (String(N-Math.floor(N)).length>=LargoMinimodeDiferencia) {
  18.         // El valor no fue producido, se muestra y se chequea.
  19.         trace ("Se generó "+Nombre+": "+N);
  20.      }
  21.   actions for fotograma 4
  22.      if (Decimales<MaxDecimales) {
  23.         Decimales = Decimales+1;
  24.         gotoAndPlay (3);
  25.      } else {
  26.         // Se creará una nueva lista con decimales más pequeños.
  27.         MaxDecimales = MaxDecimales+1;
  28.         set ("N"+MaxDecimales, 0);
  29.         gotoAndPlay (2);
  30.      }

Salida:
Citar
Se generó N0: 1
Se generó N0: 2
Se generó N1: 0.1
Se generó N0: 3
Se generó N1: 0.2
Se generó N2: 0.01
Se generó N0: 4
Se generó N1: 0.3
Se generó N2: 0.02
Se generó N3: 0.001
Se generó N0: 5
Se generó N1: 0.4
Se generó N2: 0.03
Se generó N3: 0.002
Se generó N4: 0.0001
Se generó N0: 6
Se generó N1: 0.5
Se generó N2: 0.04
Se generó N3: 0.003
Se generó N4: 0.0002
Se generó N0: 7
Se generó N1: 0.6
Se generó N2: 0.05
Se generó N3: 0.004
Se generó N4: 0.0003
Se generó N5: 0.00002
Se generó N0: 8
Se generó N1: 0.7
Se generó N2: 0.06
Se generó N3: 0.005
Se generó N4: 0.0004
Se generó N5: 0.00003
Se generó N0: 9
Se generó N1: 0.8
Se generó N2: 0.07
Se generó N3: 0.006
Se generó N4: 0.0005
Se generó N5: 0.00004
Se generó N0: 10
Se generó N1: 0.9
Se generó N2: 0.08
Se generó N3: 0.007
Se generó N4: 0.0006
Se generó N5: 0.00005
Se generó N0: 11
Se generó N1: 1
etc
Como pueden ver, al final se muestra el 1, que fue el 1er número, por lo que no debería mostrarse. Hay números que no se muestran pero eso lo analizaré más adelante. Parece evidente que falla esto:
Código:
      if (Decimales>0) {
         LargoMinimodeDiferencia = Decimales+2;
      } else {
         LargoMinimodeDiferencia = Decimales+1;
      }
      if (String(N-Math.floor(N)).length>=LargoMinimodeDiferencia) {
Yo probé distintas cosas, ni idea ya.

Al escribir eso lo que pensé es que si al número le resto él mismo pero entero, entonces si no tenía decimales el largo del resultado será 1, y sino 3 como mínimo, ya que los números más cortos serían 0.1, 0.2, etc, es decir en el caso de no tener decimales el largo resultante es decimales(0)+1, y en el caso de tenerlos es decimales+2. Si tiene 1 decimal el resultado debería ser 3, si tiene 2 entonces 4, etc.

Pero no funciona.

Ahora al poner más salidas veo esto:
N: 1
N-Math.floor(N): 2.22044604925031e-16
String(N-Math.floor(N)): 2.22044604925031e-16
String(N-Math.floor(N)).length): 20

¿Qué condición puedo poner para que distinga si el número cumple las condiciones o no?

Una posibilidad es compararlo con los números antes generados pero eso parece absurdo porque supongo que debe haber un modo más fácil.

¿Por qué 1-floor(1) resulta un decimal? ¿N no es 1? Pero dice 1. Es el resultado de 0.9+0.1, así que podría ser algo aproximado, pero si dice 1 se supone que es 1. Y si no es 1 ¿qué hago? En este caso serviría redondearlo, pero si tengo 0.09999 y se supone que es 0.1 pero ese es repetido entonces no puedo simplemente redondearlo porque queda en 0 y no quiero ese número sino 0.1 (auque no debe mostrarse en pantalla). ¿Lo multiplico por 10^Decimales antes de redondearlo? No entiendo bien si debo redondearlo siempre o no.

Probablemente lo más sencillo sea trabajar con enteros y en el momento de mostrarlos en pabntalla agregarles 0. y cierta cantidad de 0s delante.

¿Otras ideas, info, etc?
212  Programación / Programación General / Re: Aprender un poco de Malbolge. en: 13 Diciembre 2023, 20:27 pm
Creo que había entrado en ese tutorial antes de hacer el tema, pero fijate que pregunté algo bastante concreto, y ese tutorial es como que... no va al grano o empieza por algo muy complicado que necesita mucha explicación, yo busco algo más simple. No es una contradicción: Quiero lo más simple (o lo que pedí) del lenguaje más complicado, no quiero algo complicado del lenguaje más complicado *~*

Diálogo con GPT:
dime cómo hacer un print "H" en lenguaje Malbolge

Citar
El lenguaje de programación Malbolge es conocido por su extrema dificultad y su diseño críptico e incomprensible. Fue creado específicamente para ser extremadamente desafiante de programar, y no está destinado a ser utilizado como un lenguaje de programación práctico.

Dicho esto, hacer un print de un solo carácter, como "H", en Malbolge es un desafío bastante complicado debido a la naturaleza retorcida del lenguaje. No hay una solución simple y directa para lograrlo.

Malbolge es famoso por ser el "lenguaje de programación más difícil de escribir y entender", y muchos consideran que es casi imposible escribir programas útiles en él. Incluso el programa más simple en Malbolge es extremadamente complejo y difícil de entender.

Si aún estás interesado en explorar Malbolge, te sugiero estudiar a fondo su documentación y los desafíos asociados con él. Sin embargo, ten en cuenta que no es un lenguaje práctico para realizar tareas comunes de programación y puede requerir un esfuerzo significativo para lograr incluso tareas simples como imprimir un solo carácter.

¿pero cómo se hace el print "H"? ¿no sabes?

Citar
Mis disculpas por la confusión anterior. Aunque el lenguaje Malbolge es extremadamente difícil de programar y entender, puedo proporcionarte un ejemplo de cómo imprimir la letra "H" en Malbolge. Aquí tienes un código de ejemplo:

```
(=BA#9"=<;:3y7x54-21q/p-,+*h%$"
```

Ten en cuenta que este código puede no ser el enfoque más eficiente o elegante para lograr el resultado deseado en Malbolge. Dado que Malbolge es un lenguaje altamente complejo y oscuro, no hay una solución única o estándar para realizar tareas específicas.

Si deseas aprender más sobre el lenguaje Malbolge y explorar cómo realizar otras operaciones, te sugiero estudiar su documentación y los ejemplos disponibles en línea.

Ahora haz un print "e"

Citar
Mis disculpas nuevamente, pero debido a la naturaleza extremadamente compleja y poco convencional del lenguaje Malbolge, no puedo proporcionarte un código específico para imprimir la letra "e" en Malbolge.

Malbolge es conocido por su diseño críptico y su intencional falta de legibilidad. Incluso tareas aparentemente simples como imprimir un solo carácter pueden resultar extremadamente desafiantes y requerir un conocimiento profundo del lenguaje.

Si tienes interés en explorar el lenguaje Malbolge y realizar operaciones específicas, te recomendaría investigar sobre el tema y estudiar ejemplos y recursos disponibles en línea. Ten en cuenta que Malbolge es un lenguaje altamente especializado y no está diseñado para ser utilizado en situaciones prácticas de programación.

Joder... En otro momento lo comparo con el hola mundo a ver si le veo alguna lógica.
213  Programación / Programación General / Aprender un poco de Malbolge. en: 13 Diciembre 2023, 13:24 pm
Leí sobre él en Wikipedia español e inglés pero no entendí mucho, pero eso me ocurre al leer casi cualquier cosa de la Wikipedia, así que veamos a mi manera.

¿Cómo hacer un programa en Malbolge que muestre "H" en la pantalla?

¿Y otro que muestre "e"?

Se supone que esto:
Código:
(=<`#9]~6ZY327Uv4-QsqpMn&+Ij"'E%e{Ab~w=_:]Kw%o44Uqp0/Q?xNvL:`H%c#DD2^WV>gY;dts76qKJImZkj
muestra "Hello, World", pero ni idea cual es la instrucción y cual es el parámetro en eso.

https://en.wikipedia.org/wiki/Malbolge#Instructions

Yo no veo algo dentro de unos paréntesis curvos o cuadrados, a menos que se usen indistintamente, o sea que lo dicho ahí no parece explicar el código.
214  Foros Generales / Dudas Generales / Re: ¿Existen problemas informáticos tipo "Los 7 problemas matemáticos del millón de dólares"? en: 13 Diciembre 2023, 13:14 pm
Paso pero intentaré aprender un poco por curiosidad, a ver por qué es tan difícil.
215  Foros Generales / Dudas Generales / ¿Existen problemas informáticos tipo "Los 7 problemas matemáticos del millón de dólares"? en: 12 Diciembre 2023, 10:41 am
He visto alguno en que piden averiguar una especie de password o clave para traducir un código, yo me refiero a algo que dependa más de la lógica que de lo que se le antojó escribir a alguien (peor si era para complicarlo), pero cualquier cosa estaría bien.

Responder por privado así tengo menos competencia (broma  :laugh: ).
216  Programación / Programación General / Re: ¿El programa dice que 9999999+1 es 9999999.99999999? en: 11 Diciembre 2023, 19:04 pm
se implementó SharedObject que sirve para guardar y traer datos en Disco, es lo que se usa en juegos actuales para guardar puntuaciones, preferencias, etc. Si sabes algo de cookies en la web, pues es prácticamente lo mismo pero aplicado a flash. En sí es muy sencillo de usar, quizá has visto otros métodos que son para ActionScript 2.0 o 3.0 para manipular archivos o enviar/recibir datos a servidores web, eso si es alguito más complejo
Voy a buscar por curiosidad. Sí, yo había leído que había que enviar un email, supongo que leí mal, no podía creerlo :o ¡Enviar un email para guardar variables en un archivo!

Citar
No comprendo bien esa parte
Imagina un juego que se gana por presionar cualquier tecla.

Normalmente sería algo así:
Código
  1.   actions for fotograma 1
  2.      // Mostrar mensaje "Presiona una tecla."
  3.      stop ();
  4.   actions for Movie1
  5.      onClipEvent (keyDown) {
  6.         _level0.gotoAndStop(2);
  7.      }
  8.   actions for fotograma 2
  9.      // Mostrar mensaje "Ganaste."

Pero si entras al juego habiendo presionado Enter, el juego creerá que presionaste eso en él (salvo que tarde mucho en abrirse o enseguida dejes de presionar la tecla), por eso 1ero hay que chequear que ya no se esté presionando una tecla, así:
Código
  1.   // Desde frames 1 a 3 mostrar mensaje "Presiona una tecla."
  2.   actions for Movie1 (ubicada desde frame 1 a 3)
  3.      onClipEvent (keyDown) {
  4.         _level0.gotoAndPlay(2);
  5.      }
  6.   actions for fotograma 4
  7.      stop ();
  8.   actions for Movie2
  9.      onClipEvent (keyDown) {
  10.         _level0.gotoAndStop(5);
  11.         // Ahí se muestra mensaje "Ganaste".
  12.      }

A mí la Esc no me funciona en eso, pero agregando tu código podría lograrlo, pruebo, pero ¿te das cuenta que hay muchas teclas que podrían tener que agregarse? Alt, ImprPant, etc.

Ah, hasta me había olvidado que usé Math.pow xD Tengo pésima memoria para algunas cosas xD
Ahora entiendo mejor el mensaje de .xAk. sobre agregar 0s como si fuese un string. Así que es el pow... Menos mal, sería incómodo que si uno suma un número "grande" pueda fallar, sin saber realmente qué es "grande" para Flash.
217  Programación / Programación General / Re: ¿El programa dice que 9999999+1 es 9999999.99999999? en: 7 Diciembre 2023, 13:59 pm
Daniel:
Cierto pero en este caso no hubo división, es entero+entero y resulta decimal  :o

Deberías migrar a Flash MS 2004 y AS2 XD)
Te cuento.

Flash 5 fue el 1er Flash que tuve, no podía actualizarlo porque no tenía Internet ni contactos, ni interés porque estaba bien. Desde cierto punto empecé a usar una función "secreta" (que no recuerdo cómo averigué): "fs command (save, (nombre.extensión))" o algo así, aquí la mencionan:
https://www.forosdelweb.com/f16/fscommand-447897/

También se menciona que no está incluída en los manuales, en otros lados leí que "was hacked" o algo así, por eso dije "secreta".

Cuando conseguí Flash 8, no me funcionaba eso. Y me resultaba crucial. Busqué en cibercafés cómo se guardaba variables en archivos, y lo que encontré me resultó tan absurdamente complicado que decidí volver a usar el 5.

Hace mucho no uso esa función, pero de hecho he visto que en nuevas versiones de Flash usan eso de Import que no me gusta y no permiten poner código en películas, que también me resultaba esencial, y aún hoy me resulta útil... Aunque puede ser por las mismas limitaciones de F5. Por ejemplo ¿cómo captas que se presionó una tecla cualquiera? De las que funcionan, Esc parece que no. Yo intenté algo como:
LastKey = getcode();
Y chequear si cambia, creo que inicia como -1 pero... sólo si entraste con el mouse, sino te capta el enter, e inicia con su valor y asume que presionaste una tecla. Estoy haciendo un juego muy sencillo que se gana si presionas una tecla cualquiera, pero debo evitar el error que te mencioné xD Así lo tengo:
Código:
Escena 1
   // En el fotograma 1 y 2 dice "Cargando..."
   actions for Vacío (fotograma 2)
      onClipEvent (keyDown) {
         _level0.gotoAndPlay(1);
      }
   // En fotograma 3 y 4 se muestra mensaje "Presiona una tecla".
   actions for fotograma 4
      gotoAndPlay (3);
   actions for Vacío (fotograma 3 y 4)
      onClipEvent (keyDown) {
         // Muestra mensaje "Ganaste".
         _level0.gotoAndStop(5);
      }

En F8 llegué a usar algo llamado Listener o algo así, no me acuerdo, pero me gustaba más poner acciones en objetos...

Otro problema que tuve con F8 es que yo quería que me abriera los archivos con el 5 pero se me cambiaba, y al intentar desinstalarlo me decía que no tenía permiso...

Por todo eso sigo prefiriendo el 5 o al menos sería arriesgado instalar otros, no los necesito.

Lo que sí, tengo archivos que no puedo abrir, pero eso es cuestión de ir a un ciber algún día, e instalar algo ahí, no tengo apuro.

Creo que en F5 es imposible hacer algo como esto:
Si se presiona el mouse, hacer X.
sino si se presiona una tecla, hacer Y.
sino si se mueve el mouse, hacer Z.

Porque lo 2ndo sólo se puede hacer con "onClipEvent (keyDown)" en una película como te comenté, y no se puede usar else con eso xD Entonces puede que se apliquen todos a la vez. Claro, puede ponerse los códigos en distintos frames con ifs, pero no es una forma cómoda de hacerlo, a eso me refería.

Citar
Código
  1. trace( -1 + Math.pow(10, 8 - 1) )

Macromedia Flash 5 lo compila a:

Código
  1. trace(9999998.999999994);

Macromedia Flash MX 2004 lo compila a:

Código
  1. trace(9999999);
M, yo probé esto:
Código:
Longitud = 8;
Nombre = "N"+Longitud;
N8 = 9999999;
N = eval(Nombre)+1;
trace ("N: "+N);
set (Nombre, eval(Nombre)+1);
trace (Nombre+": "+eval(Nombre));
stop ();

Y resultó bien, entonces asumo que funciona mal cuando el programa está medio sobrecargado, al menos en mi caso, en el tuyo parece que siempre.

Citar
JPEXS
Me lo anoto.

Ah, mira, justo miré anotaciones y me acordé de algo:
"Parece que no es posible cambiar el color de algo referenciándolo con eval, no puede tener un nombre variable, debe ser la película. Habrá que probar si no hay manera, si cometí un error, sino habrá que usar ifs... o functions."
Aún no lo analicé mucho, son 4 cuadrados grandes puestos como si fuesen 2x2 píxeles pero que ocupan toda la pantalla. Son Pixel1, Pixel2, Pixel3 y Pixel4. La idea es que en la pantalla se generen todos los posibles dibujos con esos cambiando de color a blanco y negro nada más. Este es el código que debo arreglar:
Código
  1. Escena 1
  2.   actions for fotograma 1
  3.      Puntero = 4;
  4.      function Variar () {
  5.         Pixel = "P"+Puntero;
  6.         evaledPixel = eval(Pixel);
  7.         // ¿El pixel puede cambiar de color?
  8.         if (evaledPixel<1) {
  9.            // Sí, cambiarlo.
  10.            set (Pixel, evaledPixel+1);
  11.            Col = new Color(evaledPixel);
  12.            Col.setRGB(parseInt(FFFFFF, 16));
  13.            DibujoListo = "Sí";
  14.            gotoAndPlay (4);
  15.            // Darme tiempo de verlo
  16.            // volver
  17.         } else {
  18.            // No, resetearlo.
  19.            set (Pixel, 0);
  20.            Col = new Color(evaledPixel);
  21.            Col.setRGB(parseInt(0, 16));
  22.            // ¿Hay un pixel anterior?
  23.            if (Puntero>1) {
  24.               // Sí, apuntar a ese.
  25.               Puntero = Puntero-1;
  26.               // Continuar haciendo el dibujo.
  27.               DibujoListo = "No";
  28.            }
  29.         }
  30.      }
  31.   actions for fotograma 2
  32.      Variar();
  33.   actions for fotograma 3
  34.      Variar();
  35.      if (DibujoListo == "No") {
  36.         gotoAndPlay (2);
  37.      }
  38.   actions for fotograma 20
  39.      gotoAndPlay (2);
218  Programación / Programación General / Re: ¿El programa dice que 9999999+1 es 9999999.99999999? en: 6 Diciembre 2023, 05:04 am
Pero estos números son enteros, se convierten a decimal sin que haya habido decimales de por medio.
219  Foros Generales / Dudas Generales / Re: Webs abandonadas, pedir eliminación. en: 6 Diciembre 2023, 00:54 am
La situación puede ser compleja: Quizá el niño no quiere aparecer ahí, quizá no sabe que está ahí pero si supiera no querría, quizá murió pero si hubiera podido elegir no quisiera que su foto esté ahí, quizá otra cosa, no sé...

Pero lo tuyo suena a woke o como le llamen, alguien que quiere "cancelar" cosas por motivos insignificantes.

¿Acaso los niños están desnudos, haciendo poses sugerentes o algo? ¿les has preguntado a los niños en cuestión si les molesta que sus fotos estén ahí?

No creo que esté bien ir por la vida como si fueses un dictador, intentando borrar publicaciones que no son tuyas, a menos que en ellas te estuvieran insultando (*) o poniendo fotos tuyas sin tu permiso, o editadas (**), o estuvieran poniendo datos tuyos sin tu permiso.
(*): E incluso en este caso no sé si debería importarte, mientras no te obliguen o a otros a verlo. Todos defecamos, pero algunos según mi experiencia defecan acciones o palabras, piensa que es eso, y no vale la pena mirar sus eses. Y si algún conocido tuyo las mira seguido, probablemente sea de la misma calaña.
(**): A menos que sea en broma, que avisen que es en broma. Si te molesta, volvemos al punto anterior.

Si los niños fuesen tus hijos o adoptados, podrías ir a la policía supongo, o a un abogado, pero no creo que sea el caso. Sino podrías intentar ponerte en contacto con los padres o tutores, si los conoces, sino organizar una "cruzada" para conocerlos. Pero tampoco tengas mucha esperanza de que funcione, el sistema humano de justicia es... injusto.

Piensa que tal vez el publicante murió o está en coma, o en un hospital por un accidente, o porque le dieron una paliza, o lo metieron preso o en un manicomio, quizá por error. Y que quizá es su deseo que su publicación siga ahí, para quien quiera verla, o para continuarla cuando pueda.

Si el blog está en una empresa, podrías contactarte con ella. Busca la palabra "contacto", suele estar al final de las páginas.

En fin, páginas fraudulentas son otro tema, al principio parece que te importaba no el contenido sino el hecho de que esté abandonado. En ese sentido, a mí me molestaban los posts en que dan a descargar algo y luego resulta que los links estaban caídos. Eso sí que debvería borrarse, si no se hizo ya, porque hacía perder el tiempo a muchos y no era lo que prometían, o al menos ya no.
220  Programación / Programación General / ¿El programa dice que 9999999+1 es 9999999.99999999? en: 5 Diciembre 2023, 10:17 am
Quiero un programa que haga esto:
N = 0
N = 1
N = 10
N = 2
N = 101
N = 1000
etc

O sea:
1era vuelta: Se produce un número de 1 cifra.
2nda: De 1 cifra, de 2 cifras.
3era: De 1 cifra, de 2 cifras, de 3 cifras.
Y así sigue.

Cada nuevo número de cierta cifra es +1 con respecto al anterior de esas cifras.

Cuando con 1 cifra no haya más posibles, ya no se producen más de esos, lo mismo ocurre con los de cualquier otra cifra. Es que luego del 9 viene el 10 pero ese tiene 2 cifras, ya se produjo, no quiero que se produzcan repetidos.

Hice este código y le puse traces porque me da un error que no entiendo:
Código
  1. Escena 1
  2.   actions for fotograma 1
  3.      MinLongitud = 1;
  4.      MaxLongitud = 1;
  5.      N1 = -1;
  6.   actions for fotograma 2
  7.      Longitud = MinLongitud;
  8.      trace ("F2: Longitud: "+Longitud);
  9.   actions for fotograma 4
  10.      Nombre = "N"+Longitud;
  11.      trace ("Nombre: "+Nombre);
  12.      N = eval(Nombre)+1;
  13.      trace ("N: "+N);
  14.      if (String(N).length>Longitud) {
  15.         trace (String(N).length+" > "+Longitud);
  16.         // El valor ya fue producido.
  17.         MinLongitud = MinLongitud+1;
  18.         trace ("MinLongitud: "+MinLongitud);
  19.         gotoAndPlay (2);
  20.      } else {
  21.         // Guardar el valor en la lista correspondiente.
  22.         set (Nombre, N);
  23.         trace ("Se generó "+Nombre+": "+N);
  24.         C = String(N).charat(N);
  25.         // trace (N+" resulta "+C);
  26.         if (C == 0) {
  27.            if (Solfor0 == undefined) {
  28.               Solfor0 = N;
  29.            }
  30.         } else if (C == -9) {
  31.            if (Solfor9 == undefined) {
  32.               Solfor9 = N;
  33.            }
  34.         } else if (C == 4.5) {
  35.            if (Solfor4 == undefined) {
  36.               Solfor4 = N;
  37.            }
  38.         } else if (C == -7.2) {
  39.            if (Solfor7 == undefined) {
  40.               Solfor7 = N;
  41.            }
  42.         }
  43.      }
  44.   actions for fotograma 5
  45.      if (Longitud<MaxLongitud) {
  46.         Longitud = Longitud+1;
  47.         gotoAndPlay (4);
  48.      } else {
  49.         // Se creará una nueva lista.
  50.         MaxLongitud = MaxLongitud+1;
  51.         set ("N"+MaxLongitud, -1+Math.pow(10, MaxLongitud-1));
  52.         trace ("Se creó N"+MaxLongitud+": "+String(-1+Math.pow(10, MaxLongitud-1)));
  53.         gotoAndPlay (2);
  54.      }

Salida:
Citar
F2: Longitud: 1
Nombre: N1
N: 0
Se generó N1: 0
Se creó N2: 9
F2: Longitud: 1
Nombre: N1
N: 1
Se generó N1: 1
Nombre: N2
N: 10
Se generó N2: 10
Se creó N3: 99
F2: Longitud: 1
Nombre: N1
N: 2
Se generó N1: 2
Nombre: N2
N: 11
Se generó N2: 11
Nombre: N3
N: 100
Se generó N3: 100
Se creó N4: 999
F2: Longitud: 1
Nombre: N1
N: 3
Se generó N1: 3
Nombre: N2
N: 12
Se generó N2: 12
Nombre: N3
N: 101
Se generó N3: 101
Nombre: N4
N: 1000
Se generó N4: 1000
Se creó N5: 9999
F2: Longitud: 1
Nombre: N1
N: 4
Se generó N1: 4
Nombre: N2
N: 13
Se generó N2: 13
Nombre: N3
N: 102
Se generó N3: 102
Nombre: N4
N: 1001
Se generó N4: 1001
Nombre: N5
N: 10000
Se generó N5: 10000
Se creó N6: 99999
F2: Longitud: 1
Nombre: N1
N: 5
Se generó N1: 5
Nombre: N2
N: 14
Se generó N2: 14
Nombre: N3
N: 103
Se generó N3: 103
Nombre: N4
N: 1002
Se generó N4: 1002
Nombre: N5
N: 10001
Se generó N5: 10001
Nombre: N6
N: 100000
Se generó N6: 100000
Se creó N7: 999999
F2: Longitud: 1
Nombre: N1
N: 6
Se generó N1: 6
Nombre: N2
N: 15
Se generó N2: 15
Nombre: N3
N: 104
Se generó N3: 104
Nombre: N4
N: 1003
Se generó N4: 1003
Nombre: N5
N: 10002
Se generó N5: 10002
Nombre: N6
N: 100001
Se generó N6: 100001
Nombre: N7
N: 1000000
Se generó N7: 1000000
Se creó N8: 9999999
F2: Longitud: 1
Nombre: N1
N: 7
Se generó N1: 7
Nombre: N2
N: 16
Se generó N2: 16
Nombre: N3
N: 105
Se generó N3: 105
Nombre: N4
N: 1004
Se generó N4: 1004
Nombre: N5
N: 10003
Se generó N5: 10003
Nombre: N6
N: 100002
Se generó N6: 100002
Nombre: N7
N: 1000001
Se generó N7: 1000001
Nombre: N8
N: 9999999.99999999
16 > 8
MinLongitud: 2
F2: Longitud: 2
Nombre: N2
N: 17
Se generó N2: 17

O sea, no genera el número 8 ni el 9, porque, si lo interpreté bien, cuando N8 = 9999999 y Longitud = 8, y se hace esto:
Código:
Nombre = "N"+Longitud;
N = eval(Nombre)+1;
El resultado es:
Nombre = "N"+8 = "N8"
N = eval(Nombre)+1 = eval("N8")+1 = 9999999+1 = 9999999.99999999
y apartir de ahí no sé qué hace, pero ya eso es un error ¿mío o qué pasa? ¿el máximo valor que puede tener una variable en Macromedia Flash 5 es 9999999.99999999 no 10000000? ¿o sea no más de 7 caracteres enteros? No me resulta un problema, creo, pero ¿por qué sucede eso? ¿tiene sentido? Si se puede guardar textos largos ¿por qué no un número? ¿o con números largos calcula mal tal como ocurre cuando son decimales?
Páginas: 1 ... 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ... 192
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines