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


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Temas
Páginas: 1 ... 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [29] 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ... 57
281  Programación / Programación General / Hacer que un generador de una lista haga excepciones y agregue elementos. en: 28 Enero 2024, 12:58 pm
La lista que se genera es de cosas/eventos contables en un programa, por ejemplo la cantidad de clics.

Pero "sólo un clic" no es lo mismo que un "clic mientras se hace algo", por ejemplo. Para diferenciar eso puse +Nada, +Algo y +Lo que sea (Nada/Algo). Supongo que eso es lo más raro a primera vista. "Casos de Nada" está mal, no debe ir, puede haber otras cosas que tampoco.

Citar
0:   Casos de Nada
1:   1er Frame en que ocurrió Nada
2:   Frames en que ocurrió Nada
3:   En 10 Frames, mínimos casos de Nada
4:   En 10 Frames, máximos casos de Nada
5:   En 10 Frames, mínima cantidad de Frames en que ocurrió Nada
6:   En 10 Frames, máxima cantidad de Frames en que ocurrió Nada
1:   Casos de Mov + Nada
2:   1er Frame en que ocurrió Mov + Nada
etc, etc, son 1344 líneas (7*4*4*4*3, permutaciones o como se llame, 7 posibilidades en una variable, 4 en otra, etc).

El código es:
Código
  1.   actions for fotograma 1
  2.      // Frames.
  3.      V1 = -1;
  4.      Max1 = 6;
  5.      V1Texto0 = "Casos de ";
  6.      V1Texto1 = "1er Frame en que ocurrió ";
  7.      V1Texto2 = "Frames en que ocurrió ";
  8.      V1Texto3 = "En 10 Frames, mínimos casos de ";
  9.      V1Texto4 = "En 10 Frames, máximos casos de ";
  10.      V1Texto5 = "En 10 Frames, mínima cantidad de Frames en que ocurrió ";
  11.      V1Texto6 = "En 10 Frames, máxima cantidad de Frames en que ocurrió ";
  12.      // Mov.
  13.      V2 = 0;
  14.      Max2 = 3;
  15.      V2Texto0 = "";
  16.      V2Texto1 = "Mov + ";
  17.      V2Texto2 = "Frenada + ";
  18.      V2Texto3 = "Moviéndose + ";
  19.      // Clic.
  20.      V3 = 0;
  21.      Max3 = 3;
  22.      V3Texto0 = "";
  23.      V3Texto1 = "Clic + ";
  24.      V3Texto2 = "Desclic + ";
  25.      V3Texto3 = "Cliqueando + ";
  26.      // Clac.
  27.      V4 = 0;
  28.      Max4 = 3;
  29.      V4Texto0 = "";
  30.      V4Texto1 = "Clac + ";
  31.      V4Texto2 = "Desclac + ";
  32.      V4Texto3 = "Claqueando + ";
  33.      // Final.
  34.      V5 = 0;
  35.      Max5 = 2;
  36.      V5Texto0 = "Nada";
  37.      V5Texto1 = "Algo";
  38.      V5Texto2 = "Lo que sea";
  39.      Puntero = 0;
  40.      Completado = "No";
  41.      function Variar () {
  42.         Puntero = Puntero+1;
  43.         Nombre = "V"+Puntero;
  44.         Valor = eval(Nombre);
  45.         Max = eval("Max"+Puntero);
  46.         // ¿La variable puede aumentar?
  47.         if (Valor<Max) {
  48.            // Sí, aumentarla:
  49.            set (Nombre, Valor+1);
  50.            // Obtener suma:
  51.            Suma = V1+V2+V3+V4+V5;
  52.            // Obtener texto:
  53.            Texto = eval("V1Texto"+V1)+eval("V2Texto"+V2)+eval("V3Texto"+V3);
  54.            Texto = Suma+":\t"+Texto+eval("V4Texto"+V4)+eval("V5Texto"+V5);
  55.            trace (Texto);
  56.            Puntero = 0;
  57.            // Esta función se repetirá.
  58.         } else {
  59.            // No, resetearla:
  60.            set (Nombre, 0);
  61.            // ¿Hay otra variable aumentable?
  62.            if (Puntero<5) {
  63.               // Podríhacer, apuntar a esa.
  64.               // Esta función se repetirá.
  65.            } else {
  66.               // Esta variable se pone para que del F3 no vuelva al 2.
  67.               Completado = "Sí";
  68.               stop ();
  69.            }
  70.         }
  71.      }
  72.   actions for fotograma 2
  73.      Variar();
  74.   actions for fotograma 3
  75.      Variar();
  76.      if (Completado == "No") {
  77.         gotoAndPlay (2);
  78.      }
  79.  

Quisiera que:

1:
Moviéndose, Cliqueando y Claqueando sólo aparezcan en frames, o sea:
"Casos de Moviéndose" no debe producirse, porque ¿cómo se cuentan los casos en que el mouse se está moviendo o algo se está presionando? Que yo sepa no se puede, se cuenta el tiempo (frames) en que eso sucede.
"1er Frame en que ocurrió Moviéndose" está bien.
"Frames en que ocurrió Moviéndose", ok.
"En 10 Frames, mínimos casos de Moviéndose", no, por lo ya explicado.
"En 10 Frames, máximos casos de Moviéndose", idem.
"En 10 Frames, mínima cantidad de Frames en que ocurrió ", ok.
"En 10 Frames, máxima cantidad de Frames en que ocurrió ", ok.
Lo mismo se aplica cuando lo único que hay es "Nada" o "Lo que sea", porque no se pueden contar los casos de Nada ¿cuántos puede haber en un frame? Lo que puede contarse es la cantidad de tiempo (frames) en que ocurre Nada. "Lo que sea" puede ser Nada también así que se le aplica lo mismo.

2:
Se generaran también expresiones que en vez de Clac tengan 2Clac y otras de 3Clac. Esto probablemente sea lo más fácil de lograr. Y es que no es posible hacer 2 clics al mismo tiempo (o al menos no en lo que estoy haciendo, sólo se usa el clic izquierdo) ni hacer 2 movimientos de mouse al mismo tiempo (quizá arriba+derecha, etc, pero no me refiero a eso), pero tocar varias teclas a la vez sí.

3:
Se generaran también expresiones como "Casos de Mov+Nada, Mov+Nada", "1er Frame en que ocurrió Clic+Clac+Algo, Mov+Lo que sea", etc. Significa que ocurrió una cosa y luego (,) otra. Si dice + es que son "a la vez", no es lo mismo que "luego". No debe haber más de 2 comas.

4:
No se generen combinaciones imposibles como "Clic+Desclic".


Por otro lado ¿qué otras cosas relativas a lo que el usuario haga se les ocurre que se pueden contar en un programa? Por ejemplo: Variedad de teclas presionadas, hay muchas cosas que no he puesto aún.
282  Foros Generales / Foro Libre / Ajedrez simplificado: Rey vs Rey y Peón en: 28 Enero 2024, 10:51 am


Blancas deben sobrevivir durante la mayor cantidad de turnos posible. Destruir el peón o quedar encerradas sería infinito, pero se supone que no ocurrirá.

Negras deben ganar en la mínima cantidad posible de turnos.

¿Qué deben hacer blancas para que la partida sea más larga? Bloquear al peón, pero hay varias formas de hacerlo, me refiero a eso. Uno puede ser obligado a permitir el paso antes o después dependiendo de cómo se acerque...

¿Y qué deben hacer para intentar quedar encerradas? Sé posibles situaciones en que ocurre eso, pero no sé bien cómo provocarlas, me refiero a eso.

¿Cómo jugarían negras para ganar lo más rápido posible? Coronar al peón en reina protegiéndolo con el rey y luego dar mate, pero el asunto es cómo hacer eso de la forma más rápida posible.

No sé si hay otra cosa que deba tenerse en cuenta, digan. Plantearé más ejercicios como este si les interesa.
283  Programación / Programación General / ¿Cómo recomiendan dar instrucciones a una persona o IA para que jugue como una? en: 28 Enero 2024, 05:19 am
Tengo algo así para el juego The Wizard's Castle de DOS, es un RPG/Rogue no muy complicado. Quisiera que me digan cómo se puede mejorar, en el sentido de cómo expresarlo de modo más claro.

Código:
Estado 1: Antes de entrar en el castillo:
- Elige raza elfo, hombre.
- Da puntos de modo que tus estadísticas estén equilibradas.
- Compra una espada y una plate mail.

Estado 2: Estando en el castillo, mientras no hayas conseguido todo el dinero tirado y de cofres, flares y tesoros, que no estuvieran completamente rodeados de warps/sinkholes:
- Evita los sinkholes y los warps.
- Consigue dinero de cofres y del suelo, flares del suelo y tesoros. Ignora el resto de cosas (si te cruzas con un monstruo, huye). Cuando tengas todo, sube a otro piso. Si la escalera está rodeada por warps/sinkholes, prefiere pasar por el warp.

Estado 3: Cuando tienes todo lo que buscaste, salvo lo que estaba rodeado por warps/sinkholes:
- Busca lo antes mencionado que te faltó, evitando warps a menos que sea necesario.
Nota: En cada nuevo estado las instrucciones anteriores se mantienen a menos que se mencionen cambios.

Estado 4: Tienes lo que buscaste, salvo lo que estaba rodeado por sinkholes:
- Mira si en el piso de arriba de donde haya algo así, hay un sinkhole que te lleve a donde necesitas ir. Si es así ve a esos sinkholes evitando warps y otros sinkholes. Sino. usa warps hasta que te lleven al lugar deseado. Uno de los warps no funciona como tal, si lo ves evítalo (anota donde está).

Estado 5: Tienes lo que buscaste, hay libros no leídos y ninguna de tus estadísticas está al máximo:
- Lee libros hasta que alguna de tus estadísticas se maximice.

A partir de ahí no sé bien qué decir, depende de qué estadística se maximice, luego contra qué monstruo se vaya a pelear o se esté peleando, si se tiene arma, cuales son las estadísticas... Se me pone complicado. Pero no sé si eso se relaciona con el tema, yo quiero saber si hay algo mejor que esos "Estados" y en caso de que convenga dividir alguno (si tiene ifs), cómo.
284  Programación / Programación General / ¿Una red neuronal es como un grafo? en: 26 Enero 2024, 10:59 am
GPT:
Citar
Sí, una red neuronal se puede representar como un grafo. En la teoría de grafos, un grafo es una estructura compuesta por nodos (también llamados vértices) y aristas (también llamadas bordes) que conectan los nodos. Las redes neuronales también se pueden representar como un grafo, donde los nodos representan las neuronas artificiales y las aristas representan las conexiones entre estas neuronas.

En una red neuronal, los nodos se organizan en capas, como la capa de entrada, capas ocultas y la capa de salida. Cada nodo en una capa está conectado a todos los nodos de la capa siguiente mediante aristas ponderadas. Estas aristas representan los pesos sinápticos, que determinan la fuerza y la dirección de la señal transmitida entre las neuronas.

La representación de una red neuronal como un grafo permite visualizar y comprender la estructura y las conexiones entre las neuronas. Además, los algoritmos de aprendizaje utilizados en las redes neuronales, como el algoritmo de retropropagación, se basan en la propagación de información a través de este grafo para ajustar los pesos sinápticos y mejorar el rendimiento de la red neuronal en tareas específicas.

Si el programa puede hacer crecer la cantidad de nodos, entonces me gusta la idea.

Las explicaciones que he visto respecto a qué es una red neuronal me han dejado siempre un mal sabor.

A GPT:
si hago un programa que averigue cómo es mejor actuar en ciertas situaciones y esa información se puede representar mediante un grafo ¿es una red neuronal?

Citar
No necesariamente. Si bien una red neuronal puede utilizarse para aprender y tomar decisiones en función de ciertas situaciones, la representación de la información mediante un grafo no implica automáticamente que estemos hablando de una red neuronal.

Un grafo puede utilizarse para representar cualquier tipo de estructura de datos o relaciones entre elementos. En tu caso, si estás desarrollando un programa que busca determinar la mejor acción en ciertas situaciones y esa información se puede representar mediante un grafo, es posible que estés utilizando un enfoque basado en grafos para resolver el problema. Esto implica que estás utilizando la estructura de grafo para modelar las relaciones y tomar decisiones.

Por otro lado, una red neuronal es un tipo específico de modelo de aprendizaje automático inspirado en el funcionamiento del cerebro. Consiste en una serie de capas de neuronas interconectadas, donde cada conexión tiene un peso asociado. La red neuronal utiliza algoritmos de aprendizaje para ajustar los pesos de las conexiones y aprender a tomar decisiones o hacer predicciones a partir de los datos de entrada.

En resumen, si estás utilizando un grafo para representar información y tomar decisiones, no necesariamente estás utilizando una red neuronal. La red neuronal es solo uno de los muchos enfoques posibles para resolver problemas de aprendizaje automático o toma de decisiones basados en datos.

un programa que aprenda usando una red neuronal ¿hace que ella aumente de tamaño o sólo cambia pesos?

Citar
Cuando un programa aprende usando una red neuronal, normalmente se refiere a que los pesos sinápticos de la red neuronal se ajustan a través de un algoritmo de aprendizaje, como la retropropagación del error. Durante el proceso de entrenamiento, los pesos se actualizan para mejorar el rendimiento de la red neuronal en una tarea específica.

En este proceso de aprendizaje, la red neuronal no aumenta de tamaño en términos de la cantidad de neuronas o capas. La arquitectura de la red neuronal, es decir, el número de capas y la cantidad de neuronas en cada capa, se define previamente y se mantiene constante durante el entrenamiento.

Lo que cambia son los valores de los pesos sinápticos, que se ajustan iterativamente para minimizar una función de pérdida o error. Estos pesos determinan la fuerza y la dirección de las conexiones entre las neuronas y son fundamentales para el funcionamiento de la red neuronal.

En resumen, el aprendizaje en una red neuronal implica actualizar los pesos sinápticos para mejorar el rendimiento de la red, pero no implica un aumento en el tamaño de la red neuronal en términos de su estructura o número de neuronas.

Bue, si conocen buenos videos sobre el tema quisiera que me digan, a ver por qué esa técnica es tan buena.
285  Foros Generales / Dudas Generales / ¿Cuales son los mitos más comunes sobre los hackeos? en: 24 Enero 2024, 08:34 am
Por ejemplo ¿puede un hacker hacer que en otra pantalla se muestre lo que el víctimo está viendo en la suya?

¿Puede un hacker escribir cosas en la computadora del víctimo mientras éste lee atónito? Por ejemplo que el víctimo esté escribiendo y de repente en el cuadro de texto en vez de que aparezca lo que escribe aparezca lo que escriba el hacker, que podría ser algo como "No pude comunicarme de otra manera, soy un espíritu, necesito que vayas a...".

¿Que cosas que se suele creer que son imposibles para un hacker, son posibles?

¿Y qué cosas que algunos creen posibles para un hacker, en realidad no lo son (por ahora al menos)?
286  Media / Juegos y Consolas / Ideas para juego de Matemática. en: 21 Enero 2024, 10:17 am
Sería una versión mejorada de este:
https://www.youtube.com/watch?v=i_aPn9W2WF8
mezclada con Magic The Gathering y Yu-gi-oh.

N = Nro de jugadores.
??? = Cantidades a decidir.

- Cada jugador debe hacer un mazo de cartas.
- Hay 3 tipos de cartas:
--- Números.
--- Operadores.
--- Personas o personajes que han sido relevantes en las Matemáticas.
- Cada jugador baraja su mazo. Luego pone cartas boca arriba, formando cada uno un cuadro de ???x??? cartas.
- Debe haber al menos 1 carta de tipo número en cada cuadro. Cada jugador puede devolver sus cartas a su mazo y volver a poner otras, pero cada vez que lo haga tendrá que poner 1 carta menos. Si llega un punto en que sólo puede poner 1 carta y la que pone no es un número, pierde.
- El órden de los turnos podría ser decidido según la cantidad de números que hayan puesto, o su suma, o cual sea el mayor, o no sé, qué sería mejor. En caso de empate se vería quien tiene la 2nda cantidad mayor, o la suma mayor, o lo que se haya decidido, y así sucesivamente. En caso de que no sea posible desempatar así se comienza a ver quién tiene el número mayor al final de su mazo.
- Podría ser que, quien inicia, no toma una carta de su mazo en esa ocasión. En los demás casos sí, al inicio de su turno, el jugador toma una carta de su mazo.
- En cada turno se puede lanzar sólo 1 operación (1 número, 1 operador y otro número) y sólo a 1 personaje.
- El contexto podría ser:
A: Los números en el cuadro de cada jugador son candados, gana quien abre todos los del adversario.
B: Los cuadros son murallas, gana quien hace un camino vertical en la muralla rival. En este caso al inicio debería haber al menos 1 número en cada columna de cada cuadro.
C: Alguna de esas 2 con el agregado de que luego debe quitarle puntos de vida.

Los personajes causarían efectos especiales en el juego, como obtener 2 cartas del mazo, ver la mano del rival, etc.

Sería bueno que durante el juego los jugadores pudieran poner números en sus cuadros y/o intercambiar sus otras cartas de ahí por números pero no sé si así nomás o de algún modo especial. Se requieren 2 y 1 operador para destruir 1 rival... Si se pudiera poner un número en el cuadro cada vez que se tenga en la mano entonces ¿para qué usar 3 cartas en destruir 1 si se podrían poner 3? Por eso no puede ser. ¿Para poner 1 hay que descartar 2 cartas? Podría ser. También, que si en el cuadro se tiene una carta no número y en la mano un número, se puedan intercambiar.

Podría haber cartas tipo trampa también, estarían en el cuadro y se podrían activar cuando se destruye un número al lado. En este caso las cartas que no sean número estarían boca abajo y se pondrían boca arriba cuando un número sea destruido ¿está bien? O en caso de jugarse en el modo "hacer camino", se activarían cuando deja de haber un número delante y el rival decide pasar.

Tal vez sería bueno que en vez de tomar 1 carta por turno se tomen 2, el problema es que entre más cartas más se tarda en jugarlas porque debe pensarse más, por tener más opciones.

Otra posibilidad es que en vez de jugar con 1 mazo en que están todos los tipos de cartas mezclados, se juegue con varios mazos a la vez. Está bien mientras no se mezclen todas en la mano y en la pila de descarte, sino habría que reacomodarlas al final de cada partida (por supuesto si es un videojuego no sería problema).

Una idea que me gustó es que un efecto especial sea "obtén el menor resultado posible". Ambos jugadores podrían usar todos los números y operadores que quieran intentando eso y el ganador obtendría algún beneficio especial (tomar del mazo el doble de cartas que haya usado, por ejemplo), pero si en general no se tendrá muchas cartas en la mano no tiene mucha gracia.

Ahora que me doy cuenta, debería permitirse lanzar operaciones más grandes, es decir, con más números y más operadores.

En fin ¿qué más se les ocurre?
287  Sistemas Operativos / Windows / ¿Qué sobra en mi PC y cómo lo arreglo? en: 19 Enero 2024, 21:49 pm
No entiendo por qué se pone tan lento a veces. Tomé estas fotos al administrador de tareas, indicando que muestre los procesos de todos los usuarios porque por defecto no lo hace:




Veo por ejemplo que está Firefox, pero yo no lo uso ¿cómo quito que se actualice sólo? Debería hacerlo sólo cuando lo abro, cosa que no hago en años. Lo tengo por las dudas, además se supone que es una versión antigua porque en un tiempo los certificados no me funcionaban o algo así. Si se actualiza no tiene sentido.

Nero tampoco tendría que estarse actualizando, que lo haga cuando lo use...

Hay muchas cosas que no sé qué son.
288  Foros Generales / Foro Libre / ¿Neuronas de sanguijuela en circuitos tiene sentido? en: 18 Enero 2024, 08:00 am
Hace tiempo pregunté algo por ahí (nada que ver con poner cosas vivas en circuitos) y me dieron esto:
https://diarioti.com/neuronas-de-sanguijuela-en-computadoras/5189

Si hacen eso, que la máquina empiece a actuar de modo muy raro o peligroso ya no me parece tan imposible. ¿Realmente pueden predecir o controlar lo que harán esas neuronas? ¿realmente son más rápidas que lo que usan las PC y demás? ¿alguien sabría por qué? Pues de algún moido las neuronas también harán cálculos ¿no? Dudo que hagan las cosas por simple atracción como si fuesen imanes y metales ¿o sí? No sé, todo muy raro.

Y eso es de 1999, vaya a saber en qué quedó.

Algo más:
https://www.levante-emv.com/tendencias21/2023/03/03/ordenadores-construidos-neuronas-humanas-vuelta-84044439.html
289  Programación / Programación General / ¿Cómo hacer programas que resuelvan dudas cada vez más difíciles de resolver? en: 17 Enero 2024, 04:49 am
Más o menos en 2008 me hice una pregunta similar pero no he cambiado tanto :P

Ejemplos de dudas sencillas:
¿Qué número es mayor que 10?
¿Qué número entero del 1 al 9 elegí?

Son sencillas porque:
- Simplemente hay que decir un número entero.
- Las condiciones que debe cumplir la solución son fáciles de expresar y chequear.

Con fuerza bruta se pueden resolver:
Decir un número acorde, muy bajo/alto. Si cumple la condición mostrarlo y sino disminuirlo/aumentarlo.

Lo complicado empieza al intentar complicar la duda. ¿Cómo se pueden complicar las dudas?

Pensé en cuales son las variables de las dudas, aumentar su cantidad y complejidad... A continuación dejo una lista sobre eso:
Citar
- Mínima cantidad de Variables de la situación.
- Máxima cantidad de Variables de la situación.
- Posibles cantidades de Variables de la situación.
- Mínima complejidad de las Variables de la situación.
- Máxima complejidad de las Variables de la situación.
- Posibles cantidades de complejidades de Variables de la sit.
- Mínimo rango de valores de las Variables de la situación.
- Máximo rango de valores de las Variables de la situación.
- Posibles rangos de valores de las Variables de la situación.

- Mínima cantidad de Candidatos.
- Máxima cantidad de Candidatos.
- Posibles cantidades de Candidatos.
- Mínima complejidad de los Candidatos.
- Máxima complejidad de los Candidatos.
- Posibles cantidades de complejidades de los Candidatos.
- Mínimo rango de valores de los Candidatos.
- Máximo rango de valores de los Candidatos.
- Posibles rangos de valores de los Candidatos.

- Modo en que varían los Candidatos.

- Mínima cantidad de conds a chequear antes de aplicar al C.
- Máxima cantidad de conds a chequear antes de aplicar al C.
- Posibles cantidades de conds a chequear antes de aplicar al C.

- Mínima cantidad de modificaciones al aplicar al Candidato.
- Máxima cantidad de modificaciones al aplicar al Candidato.
- Posibles cantidades de modificaciones al aplicar el Candidato.
- Mínima complejidad de las modificaciones al aplicar al Cand.
- Máxima complejidad de las modificaciones al aplicar al Cand.
- Posibles cantidades de complejidades de mods al aplic al Cand.

- Mínima cantidad de conds a chequear antes de aplicar Efectos.
- Máxima cantidad de conds a chequear antes de aplicar Efectos.
- Posibles cantidades de conds a chequear antes de aplicar Efs.

- Mínima cantidad de Efectos.
- Máxima cantidad de Efectos.
- Posibles cantidades de Efectos.
- Mínima complejidad de los Efectos.
- Máxima complejidad de los Efectos.
- Posibles cantidades de complejidades de los Efectos.

- Mínima cantid de Aplicaciones requeridas para resolver la duda.

- Complejidad de las Pistas (0 es que no hay).

- Complejidad del Azar (0 es que no hay).

- Mínima cantidad de Condiciones que los Cands deben cumplir.
- Máxima cantidad de Condiciones que los Cands deben cumplir.
- Posibles cantidades de Condiciones que los Cands deben cumplir.
- Mínima complejidad de las Conds que los Cands deben cumplir.
- Máxima complejidad de las Conds que los Cands deben cumplir.
- Posibles cants de complejs d las Conds q los Cands deben cmplr.
Pero está incompleta, de hecho no sé cómo saber si está completa, y parece inútil, es como que en vez de ir por distintos caminos subo una montaña a ver qué caminos hay, pero cuesta subir y no avanzo por los caminos.

¿Qué me conviene hacer?

Recientemente pensé en cómo sería agregar "variables de la situación", cosa que ya había pensado un poco:
¿Qué número es mayor que X y menor que Y? 2 variables: X e Y.
¿Cual es uno de 2 números que elegí? Idem.

Esto parece que inevitablemente aumenta la cantidad de condiciones que deben chequearse, salvo que la acción o candidato use una de las variables de situación, ejemplo:
Código:
NumeroElegible1 = 878
NumeroElegible2 = 827837
etc
Candidato = 1
Si NumeroElegible(Candidato) == NumeroaAdivinar
  fin
etc
Lo cual es bastante random e inútil creo. Si fuesen palabras de un tipo, entonces tendría sentido, por ejemplo "adivina qué deporte pensé". Por esto, parecería que conviene probar aumentar las condiciones.

A ver, es que a 1era vista hay 2 opciones:
1: Ver cuales son las variables (la lista incompleta que puse) e ir agregando esas variaciones en las dudas. Agregar un efecto (algo que influye en nuestras acciones y no podemos controlar), o complicar el tipo de variable, etc. Se hacen distintas mezclas cada vez más complejas o con más ingredientes.
2: Pensar cual es la variable que conviene complicar, complicarla, pensar otra, complicarla, hacer mezclas, y repetir.

Yo intentaba lo 1ero, pero ya dije el problema.

Lo 2ndo es que no me convence mucho. Es posible agregar una condición que el número deba cumplir, y otra, y otra, y así hasta el infinito ¿pero qué utilidad tiene hacer eso?

Las condiciones serán cada vez más complejas, creo, es inevitable, no podemos estar diciendo N<X, N>Y, N<J, etc, basta con ver si X<J o qué (además esas no son variables de situación, o al menos no necesitan definirse como tales, o sería una duda más compleja de la que pienso), en cierto punto habrá que poner condiciones como "debe ser par", "debe ser capicúa", etc.

Bueno ¿condiciones cada vez más complejas entonces? Para números. Algo había hecho para eso, pero sigo prefiriendo el método 1 (completar la lista e ir mezclando todo más o menos a la vez), no sé...

GPT (no le vi utilidad en este caso):
Citar
Entiendo que estás buscando formas de complicar tus preguntas o dudas de manera interesante. Parece que has considerado dos enfoques: agregar variables a la situación o complicar las condiciones de las preguntas. Ambos enfoques tienen sus méritos, y podrías combinarlos para crear preguntas más desafiantes y variadas.

Agregar variables a la situación puede ser una opción efectiva. Por ejemplo, en lugar de preguntar simplemente por un número mayor que 10, podrías preguntar por un número mayor que X y menor que Y, donde X e Y son variables. Esto agrega un elemento de incertidumbre y requiere que el participante tenga en cuenta múltiples variables para encontrar la respuesta correcta.

Complicar las condiciones de las preguntas también puede ser interesante. En lugar de limitarte a condiciones simples como "mayor que X" o "par", puedes combinar múltiples condiciones y hacerlas más complejas. Por ejemplo, podrías preguntar por un número que sea mayor que X, divisible por Y y tenga la propiedad Z. Esto desafía al participante a considerar varias condiciones y encontrar un número que las cumpla todas.

Además de estos enfoques, también podrías considerar otros elementos para complicar tus preguntas. Algunas ideas incluyen:

1. Introducir efectos aleatorios: Agregar elementos de azar o aleatoriedad puede hacer que las preguntas sean más impredecibles. Por ejemplo, podrías pedir al participante que elija un número par mayor que X, pero agregar un efecto aleatorio que ocasionalmente permita números impares como respuestas válidas.

2. Incorporar restricciones adicionales: Además de las condiciones principales, podrías agregar restricciones adicionales que los participantes deben considerar. Por ejemplo, podrías pedir un número que cumpla ciertas condiciones pero que también esté relacionado con un tema específico, como los colores o los países.

3. Utilizar distintos tipos de variables: En lugar de limitarte a números enteros, podrías considerar otros tipos de variables, como palabras, imágenes o conceptos abstractos. Esto ampliará las posibilidades y permitirá una mayor variedad de preguntas.

En última instancia, la clave está en encontrar un equilibrio entre la complejidad y la comprensión de las preguntas. Asegúrate de que las preguntas sean desafiantes pero aún así se puedan abordar de manera razonable y lógica. Experimenta con diferentes combinaciones de variables, condiciones y elementos adicionales para crear preguntas interesantes que estimulen el pensamiento creativo y lógico.
290  Programación / Programación General / ¿Cómo los números se producirían más rápido en M.Flash 5? en: 16 Enero 2024, 17:41 pm
Si un while dura demasiado, aparece un mensaje diciendo eso, así que no quiero usar whiles largos como:
Código:
N = -1
do
  N++
  mostrar N
while N < 100
pero cortos puede ser.

Con los for supongo que ocurre lo mismo, igual no me gustan los for.

Cuando una repetición es larga, se puede hacer:
Código:
Frame 1:
N = -1
Frame 2:
N++
mostrar N
Frame 3:
Si N<100
  goto 2
Es más lento que un while pero tiene otro defecto peor: Sólo se producen números en el frame 2.

Para mejorar eso se puede hacer:
Código:
Frame 1:
N = -1
Frame 2:
N++
mostrar N
Frame 3:
N++
mostrar N
Si N<100
  goto 2
Si muestra el 101 y no se quiere, se cambia la condición por N<99 o N<=100.

Para evitar repetición de código, se puede hacer algo así:
Código
  1.   actions for fotograma 1
  2.      N = -1;
  3.      function Variar () {
  4.         N = N+1;
  5.         trace (N);
  6.         if (N == 100) {
  7.            stop();
  8.         } else if (Fram == 3) {
  9.            gotoAndPlay (2);
  10.         }
  11.      }
  12.   actions for fotograma 2
  13.      Fram = 2;
  14.      Variar();
  15.   actions for fotograma 3
  16.      Fram = 3;
  17.      Variar();

Pero mi código quiero que guarde los Ns que cumplan ciertas condiciones y que se detenga sólo cuando cada una haya sido cumplida por algún N, hago esto:
Código
  1.   actions for fotograma 1
  2.      Soluciones = 0;
  3.      N = -1;
  4.      function Variar () {
  5.         N = N+1;
  6.         C = String(N).charat(N);
  7.         trace (N+": "+C);
  8.         if (C == 0) {
  9.            if (Solfor0 == undefined) {
  10.               Solfor0 = N;
  11.               trace ("para que C sea 0 usar N: "+N);
  12.               Soluciones = Soluciones+1;
  13.            }
  14.         } else if (C == -9) {
  15.            if (Solfor9 == undefined) {
  16.               Solfor9 = N;
  17.               trace ("para que C sea -9 usar N: "+N);
  18.               Soluciones = Soluciones+1;
  19.            }
  20.         } else if (C == 4.5) {
  21.            if (Solfor4 == undefined) {
  22.               Solfor4 = N;
  23.               trace ("para que C sea 4.5 usar N: "+N);
  24.               Soluciones = Soluciones+1;
  25.            }
  26.         } else if (C == -7.2) {
  27.            if (Solfor7 == undefined) {
  28.               Solfor7 = N;
  29.               trace ("para que C sea -7.2 usar N: "+N);
  30.               Soluciones = Soluciones+1;
  31.            }
  32.         }
  33.         if (Soluciones<4) {
  34.            if (Fram == 3) {
  35.               gotoAndPlay (2);
  36.            }
  37.         } else {
  38.            trace ("para que C sea 0 usar N: "+Solfor0);
  39.            trace ("para que C sea -9 usar N: "+Solfor9);
  40.            trace ("para que C sea 4.5 usar N: "+Solfor4);
  41.            trace ("para que C sea -7.2 usar N: "+Solfor7);
  42.            stop ();
  43.         }
  44.      }
  45.   actions for fotograma 2
  46.      Fram = 2;
  47.      Variar();
  48.   actions for fotograma 3
  49.      Fram = 3;
  50.      Variar();

Por otro lado, tengo otro programa que intento que haga lo mismo pero en vez de probar los números 0, 1, 2, 3... quiero que sean 0, 1, 10, 2, 11, 100... y quiero que funcione más rápido si es posible, es decir, ya tengo un código que hace eso pero tiene el defecto de tener frames "al ped*" como mostré en el código 2, quiero aplicarle la "técnica" que mostré en el 4, o acelerarlo así de algún modo ¿cómo?

Este es el código:
Código
  1.   actions for fotograma 1
  2.      Soluciones = 0;
  3.      MinLongitud = 1;
  4.      MaxLongitud = 1;
  5.      N1 = -1;
  6.   actions for fotograma 2
  7.      Longitud = MinLongitud;
  8.   actions for fotograma 3
  9.      Nombre = "N"+Longitud;
  10.      N = eval(Nombre)+1;
  11.      if (String(N).length>Longitud) {
  12.         // El valor ya fue producido.
  13.         MinLongitud = MinLongitud+1;
  14.         gotoAndPlay (2);
  15.      } else {
  16.         // Guardar el valor en la lista correspondiente.
  17.         set (Nombre, N);
  18.         C = String(N).charat(N);
  19.         trace (N+" resulta "+C);
  20.         if (C == 0) {
  21.            if (Solfor0 == undefined) {
  22.               Solfor0 = N;
  23.               trace ("para que C sea 0 usar N: "+N);
  24.               Soluciones = Soluciones+1;
  25.            }
  26.         } else if (C == -9) {
  27.            if (Solfor9 == undefined) {
  28.               Solfor9 = N;
  29.               trace ("para que C sea -9 usar N: "+N);
  30.               Soluciones = Soluciones+1;
  31.            }
  32.         } else if (C == 4.5) {
  33.            if (Solfor4 == undefined) {
  34.               Solfor4 = N;
  35.               trace ("para que C sea 4.5 usar N: "+N);
  36.               Soluciones = Soluciones+1;
  37.            }
  38.         } else if (C == -7.2) {
  39.            if (Solfor7 == undefined) {
  40.               Solfor7 = N;
  41.               trace ("para que C sea -7.2 usar N: "+N);
  42.               Soluciones = Soluciones+1;
  43.            }
  44.         }
  45.      }
  46.   actions for fotograma 4
  47.      // ¿El último valor producido es de la lista de los más largos?
  48.      if (Longitud<MaxLongitud) {
  49.         // No, producir uno de una lista de más largos:
  50.         Longitud = Longitud+1;
  51.         gotoAndPlay (3);
  52.      } else {
  53.         // Sí, se creará un valor para una nueva lista, de valores más largos.
  54.         // La siguiente ecuación no funciona cuando MaxLongitud es 1, por eso hay un if y else.
  55.         if (MaxLongitud>1) {
  56.            set ("N"+(MaxLongitud+1), eval("N"+MaxLongitud)*10-1);
  57.         } else {
  58.            set ("N"+(MaxLongitud+1), 9);
  59.         }
  60.         MaxLongitud = MaxLongitud+1;
  61.         gotoAndPlay (2);
  62.      }
Páginas: 1 ... 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 [29] 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ... 57
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines