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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... 191
131  Media / Juegos y Consolas / Re: super mario bros 8? en: 6 Febrero 2024, 11:11 am
El juego que buscan probablemente sea una versión pirateada de Don Doko Don 2, yo jugué al M8 también en la Family Game, Family Computer o como se llame.

https://www.youtube.com/watch?v=1hyhqjE2ut8

El 1 es más difícil, nunca lo pude pasar.
132  Programación / Programación General / ¿Cuando mostrar cosas en pantalla? en: 5 Febrero 2024, 21:46 pm
Otra duda aparentemente tonta que me ha tenido trancado demasiado tiempo.

En programas que hacen poco, el print o lo que sea se pone casi al final, para mostrar el resultado de la tarea. Nada más.

En programas que hacen muchas cosas, lo mismo pero los prints también se ponen antes de ciertos procesos o después para indicar en qué parte del programa va, o qué está analizando en el momento. Lo vemos cuando copiamos muchos archivos por ejemplo, se indica cual se está copiando.

Parece una cuestión obvia de resolver.

Pero yo tengo un programa que me cuesta decidir o entender dónde quisiera poner los prints si tuviera un criterio que me parezca bueno. En cierto punto sólo ponía uno al final. Luego poco a poco pasé a seguir este patrón generalmente: Comentario, cambio, print. Luego empecé a creer que no tiene sentido hacer print de cada cambio porque si una cosa funciona bien no es necesario indicar que otra lo hizo, por ejemplo indicar que una variable cambió parece innecesario si enseguida se aplicará para algo. Así, quité todos los prints (en mi caso traces) del fotograma 1 excepto uno que muestra lo mismo que otra cosa así que lo quitaré también, no me di cuenta. Ahora iba a analizar el resto y, no sé bien qué hacer...
Código
  1.   actions for fotograma 1
  2.      function InsertarNodoyFlecha () {
  3.         // Insertar Nodo:
  4.         Imagenes = Imagenes+1;
  5.         Nodos = Nodos+1;
  6.         Grafo.attachMovie("mNodo", "Nodo"+Nodos, Imagenes);
  7.         // Especificar la situación que representa:
  8.         set ("Grafo.Nodo"+Nodos+".EnHP", EnHP);
  9.         // Insertar flecha:
  10.         Imagenes = Imagenes+1;
  11.         Grafo.attachMovie("mFlecha", "Flecha"+Nodos, Imagenes);
  12.         // Especificar el sitio donde se insertan:
  13.         PosicionY = PadrePosicionY+33;
  14.         setProperty ("Grafo.Nodo"+Nodos, _y, PosicionY);
  15.         setProperty ("Grafo.Flecha"+Nodos, _x, PadrePosicionX);
  16.         setProperty ("Grafo.Flecha"+Nodos, _y, PadrePosicionY+6.5);
  17.         Hijos = Hijos+1;
  18.         // Como por ahora casi todo padre tiene 1 hijo, este if agiliza el proceso creo:
  19.         if (Hijos == 1) {
  20.            PosicionX = PadrePosicionX;
  21.            setProperty ("Grafo.Nodo"+Nodos, _x, PosicionX);
  22.         } else {
  23.            Hijo = 0;
  24.            MinPosicionX = PadrePosicionX-16.5*(Hijos-1);
  25.            SAquedebeActualizarse = SAs-Hijos;
  26.            do {
  27.               Hijo = Hijo+1;
  28.               PosicionX = (Hijo-1)*33+MinPosicionX;
  29.               setProperty ("Grafo.Nodo"+(Nodos-Hijos+Hijo), _x, PosicionX);
  30.               // Actualizar datos de las posiciones guardadas:
  31.               SAquedebeActualizarse = SAquedebeActualizarse+1;
  32.               set ("SA"+SAquedebeActualizarse+"PosicionX", PosicionX);
  33.               // Establecer rotación 0 a la flecha para que su altura de se modifique bien:
  34.               setProperty ("Grafo.Flecha"+(Nodos-Hijos+Hijo), _rotation, 0);
  35.               // Especificar rotación y tamaño de flecha:
  36.               DistanciaXPadreHijo = Math.abs(Math.abs(PadrePosicionX)-Math.abs(PosicionX));
  37.               setProperty ("Grafo.Flecha"+(Nodos-Hijos+Hijo), _height, Math.sqrt(DistanciaXPadreHijo*DistanciaXPadreHijo+20*20));
  38.               Rotacion = 180/Math.PI*Math.atan(DistanciaXPadreHijo/20*-1);
  39.               // Si el hijo está a la izquierda del padre, invertir la rotación:
  40.               if (PosicionX<PadrePosicionX) {
  41.                  Rotacion = Rotacion*-1;
  42.               }
  43.               setProperty ("Grafo.Flecha"+(Nodos-Hijos+Hijo), _rotation, Rotacion);
  44.            } while (Hijo<Hijos);
  45.         }
  46.      }
  47.      Respuesta = "Vencer al enemigo mediante acciones, el enemigo tiene 11 HP. Se recomienda la serie... ";
  48.      // Situación inicial:
  49.      // HP inicial del enemigo:
  50.      EnBaseHP = 33;
  51.      trace ("EnBaseHP: "+EnBaseHP);
  52.      // Guardar situación y cómo se produjo:
  53.      // Parte inicial del nombre de los datos (en este caso S11):
  54.      SitID = "S"+EnBaseHP;
  55.      // Acción realizada en la situación anterior (en este caso ninguna):
  56.      set (SitID+"ActionAnterior", "Ninguna");
  57.      // En este caso la variable es S11Action y su valor es "Ninguna".
  58.      // Posición X e Y del nodo que representa la situación desde la cual se originó la que será representada por otro nodo...
  59.      // ...pero en este caso es la posición del 1er nodo.
  60.      PadrePosicionX = 0;
  61.      PadrePosicionY = 0;
  62.      // Cantidad de imágenes insertadas:
  63.      Imagenes = 1;
  64.      // Cantidad de nodos del grafo a mostrar:
  65.      Nodos = 1;
  66.      // Insertar nodo inicial:
  67.      Grafo.attachMovie("mNodo", "Nodo1", 1);
  68.      // Especificar la situación que representa:
  69.      Grafo.Nodo1.EnHP = EnBaseHP;
  70.      // Hijos del nodo de la situación que se está analizando:
  71.      Hijos = 0;
  72.      // Acción que será usada 1ero:
  73.      Action = 1;
  74.      // Variables sobre situaciones anotadas:
  75.      // Total de situaciones anotadas:
  76.      SAs = 0;
  77.      // Situación anotada que será investigada 1ero:
  78.      SiguienteSAaInvestigar = 0;
  79.   actions for fotograma 2
  80.      trace ("Reset de la situación, aplicación de la acción, la situación ahora es:");
  81.      EnHP = EnBaseHP-Action;
  82.      trace ("EnHP: "+EnHP);
  83.      // ¿Se logró el objetivo?
  84.      if (EnHP<=0) {
  85.         trace ("Solución hallada, iniciando proceso para mostrar cómo causarla.");
  86.         Serie = Action;
  87.         InsertarNodoyFlecha();
  88.         gotoAndPlay (5);
  89.      } else {
  90.         trace ("No se logró el objetivo.");
  91.         // ¿La situación producida está anotada?
  92.         if (eval("S"+EnHP+"ActionAnterior") == undefined) {
  93.            trace ("La situación producida no está anotada.");
  94.            trace ("Se anotará y cómo se logró.");
  95.            SitID = "S"+EnHP;
  96.            set (SitID+"EnHPAnterior", EnBaseHP);
  97.            set (SitID+"ActionAnterior", Action);
  98.            trace ("Ahora está anotada: "+SitID);
  99.            trace ("Su antecedente fue ("+SitID+"EnHPAnterior): "+EnBaseHP);
  100.            trace ("y la acción fue ("+SitID+"ActionAnterior): "+Action);
  101.            // También se agrega como situación a investigar y se anota en qué consiste:
  102.            SAs = SAs+1;
  103.            SitID = "SA"+SAs;
  104.            set (SitID+"EnHP", EnHP);
  105.            trace ("Situaciones anotadas: "+SAs);
  106.            trace ("La última consiste en (EnHP): "+eval(SitID+"EnHP"));
  107.            // Se inserta el nodo que la representa y se guarda su posición:
  108.            InsertarNodoyFlecha();
  109.            set (SitID+"PosicionX", PosicionX);
  110.            trace (SitID+"PosicionX: "+PosicionX);
  111.            set (SitID+"PosicionY", PosicionY);
  112.         } else {
  113.            trace ("La situación producida ya está anotada.");
  114.         }
  115.      }
  116.   actions for fotograma 3
  117.      // ¿Modificar acción es posible?
  118.      if (Action<7) {
  119.         trace ("Es posible modificar acción.");
  120.         Action = Action+1;
  121.         trace ("Action fue modificada, es: "+Action);
  122.         gotoAndPlay (2);
  123.      } else {
  124.         trace ("No es posible modificar la acción.");
  125.         if (SiguienteSAaInvestigar<SAs) {
  126.            // Aún hay situaciones anotadas sin investigar, investigar una (probablemente lo ideal sería investigar la más diferente a las investigadas, pero me es difícil programar eso):
  127.            trace ("Aún hay situaciones anotadas sin investigar.");
  128.            SiguienteSAaInvestigar = SiguienteSAaInvestigar+1;
  129.            EnBaseHP = eval("SA"+SiguienteSAaInvestigar+"EnHP");
  130.            trace ("Se investigará la situación anotada nro: "+SiguienteSAaInvestigar);
  131.            trace ("Consiste en EnBaseHP: "+EnBaseHP);
  132.            // Guardar su posición para saber dónde poner a sus posibles hijos:
  133.            PadrePosicionX = eval("SA"+SiguienteSAaInvestigar+"PosicionX");
  134.            trace ("Nuevo PadrePosicionX: "+PadrePosicionX);
  135.            PadrePosicionY = eval("SA"+SiguienteSAaInvestigar+"PosicionY");
  136.            Hijos = 0;
  137.            // Reset de la acción a usar:
  138.            Action = 1;
  139.            trace ("Reset de la acción a usar, es: "+Action);
  140.            gotoAndPlay (2);
  141.         } else {
  142.            trace ("No hay situaciones anotadas sin investigar ni es posible lograr el objetivo.");
  143.            Respuesta = "No es posible lograr el objetivo.";
  144.         }
  145.      }
  146.   actions for fotograma 5
  147.      // Obtener acción anterior:
  148.      ActionAnterior = eval("S"+EnBaseHP+"ActionAnterior");
  149.      trace ("La acción anterior fue: "+ActionAnterior);
  150.      // ¿Hubo?
  151.      if (ActionAnterior != "Ninguna") {
  152.         // Sí, agregarla en la lista:
  153.         Serie = ActionAnterior+" "+Serie;
  154.         trace ("Acción agregada en la serie.");
  155.         // Averiguar cual fue la situación anterior:
  156.         EnBaseHP = eval("S"+EnBaseHP+"EnHPAnterior");
  157.         trace ("Se realizó en la situación: S"+EnBaseHP);
  158.         // Repetir este frame.
  159.         gotoAndPlay (4);
  160.      } else {
  161.         // No hubo una acción anterior, mostrar la serie:
  162.         trace (Respuesta+Serie);
  163.         stop ();
  164.      }

Además hay cosas como esta:
// Aún hay situaciones anotadas sin investigar, investigar una (probablemente lo ideal sería investigar la más diferente a las investigadas, pero me es difícil programar eso):
trace ("Aún hay situaciones anotadas sin investigar.");
Es decir un trace que dice lo mismo que el comentario, por lo que parece que debería borrar el comentario, pero el comentario dice más cosas que no tiene sentido decir en un trace. Ahora se me ocurre poner el trace y luego el comentario quitando lo que ya se dice en el trace, sí, puede que sea una solución muy obvia pero no me di cuenta en parte por intentar seguir el patrón que mencioné.

133  Foros Generales / Foro Libre / Re: Conocen otros foros hispanos de programación? en: 4 Febrero 2024, 03:32 am
Me parece posible que ya haya respondido esta pregunta, y a ti.

Pero estoy seguro de que ya has dicho que el foro está muerto, y queda feo decirlo porque si bien no tiene una actividad enorme sí tiene.

No conozco otros, me basta con este, los que conocía hace años dejé de usarlos porque en unos no respondían (la web del progrador y algún otro) y en otro había un usuario que en vez de responder mis dudas me decía que él era profesional, que yo debería imitarlo, usar un mejor lenguaje, y los moderadores lo dejaban a sus anchas así que decidí no seguir ahí.

En Reddit supongo que algún subreddit habrá como el que buscas. Nomás te recomiendo andar con mucho cuidado, te banean sin mucho motivo y a veces son muy exigentes con el contenido, preguntas concisas y esas cosas, moderan bots en parte.
134  Foros Generales / Dudas Generales / Re: ¿Cómo copio rápido los temas que hice en un foro? en: 3 Febrero 2024, 12:10 pm
No es para Quora.
135  Programación / Programación General / 1, acciones, incremento VS 0, incremento, acciones. en: 3 Febrero 2024, 08:51 am
¿Qué se ha dicho que es mejor o qué opinan?

¿Cuales son las ventajas/desventajas de cada uno?

¿No hay diferencia casi?

Por si no se entiende me refiero a:
Código:
Contador = 1
Repetir:
  // Acciones.
  Contador++

VS

Código:
Contador = 0
Repetir:
  Contador++
  // Acciones.

No parece haber diferencia pero me pregunto si cuando el código se pone medio spaguetti sí...
136  Foros Generales / Dudas Generales / Re: ¿Cómo copio rápido los temas que hice en un foro? en: 3 Febrero 2024, 00:43 am
Se debería guardar en formato página completa ¿no? Como cuando se da "Guardar como". Html me dice. El problema es que no quiero hacer eso 3000 veces con esperas de carga, de descarga, y a su vez los temas tienen muchas páginas.
De ese modo las citas y colores se guardan creo, los links también.

Las imágenes creo que también, si aún existen, porque muchas ya no.

Los videos no, sólo los links.

Lo digo según mi experiencia descargando páginas.
137  Foros Generales / Dudas Generales / ¿Cómo copio rápido los temas que hice en un foro? en: 2 Febrero 2024, 19:09 pm
1er post y en lo posible todas las respuestas y páginas.

El admin me dijo:
Citar
Lo más fácil es que tú mismo hagas un script con wget o curl.

Yo no sé cuándo tendré tiempo.

Teniendo los temas, puedes entrenar un LLM y preguntarle para que te responda como cualquier usuario del foro.
Estoy ya bastante liado con mis cosas como para meterme en esas, no tengo idea de cómo se hace. Son unos 3000 temas, hacerlo a mano no parece buena idea.
138  Media / Juegos y Consolas / Re: duda juegos en: 31 Enero 2024, 22:27 pm
Os comento: en pokemon hay una situacion donde tienes que pulsar 200 veces seguidas una teclado (si quieres comprar 200 bebidas,no te dejan comprar de golpe,sino que te obligan a ir una a una). Mi intención seria con algun programita seleccionar que apriete tal boton 200 veces y yo mientras me desentiendo y hago otras cosas.
No recuerdo en qué caso yo hacía esto, creo que para dar experiencia en Mario Tennis (por PC, y cuando las teclas eran un poco más grandes):
1- Apilar monedas.
2- Unirlas con cinta.
3- Configurar el emulador para que tenga autofire con una tecla.
4- Poner la pila encima de la tecla autofire.

Si quieres que no pase demasiado tiempo en el juego luego de la tarea puedes leer un libro cerca o algo.

Pero una mejor forma de hacerlo es con gamesharks o similares, aunque si lo quieres todo legal será difícil que puedas modificar el tiempo de modo que termine exacto como debería. Con cheats puedes modificar muchas cosas del juego, nro de ítems, qué item tienes en la posición 1, qué pokemon salvaje te aparecerá, etc. Pero guarda la partida con savestate antes porque se te puede joder si lo haces mal.
139  Seguridad Informática / Seguridad / Re: Lo perdí todo! en: 31 Enero 2024, 22:16 pm
Le iba a decir algo similar, a veces al cliquear en una supuesta descarga lo que se cliquea es digamos un botón invisible que luego se elimina, el cual empieza a descargar algo que no es lo que quieres descargar. Me ha pasado varias veces. En tu caso probablemente fue mala suerte pero normalmente uno sabe qué está descargando y por el nombre raro o la extensión de esto otro te das cuenta de que no es. Tuviste mucha mala suerte supongo. Yo normalmente no descargo exes así que cuando me aparece un exe me doy cuenta que no es lo que quiero y lo cancelo.

El bloqueador de anuncios no siempre funciona, o al menos a mí no.
140  Seguridad Informática / Seguridad / Re: Lo perdí todo! en: 31 Enero 2024, 10:41 am
No puedo ayudarte, sólo un par de dudas:

1- ¿En el video se te recomendó la página esa o la encontraste por tu cuenta?

2- ¿Cual es la página? Y si te la recomendó el video ¿cual fue el video?
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ... 191
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines