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


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


Páginas: 1 2 3 [4] 5 6 7 8 9 10
 31 
 en: 8 Enero 2026, 04:17 am 
Iniciado por Tachikomaia - Último mensaje por Tachikomaia
Resolví esto pero creo que podría mejorarse. Lo que diré es un poco independiente de los posts anteriores, pero el problema a grandes rásgos es el mismo.

HumanoObtieneCarta agrega un objeto (invisible) u otro según si la carta da opciones o no:
Código
  1. function HumanoObtieneCarta () {
  2. (...)
  3. // Si la carta no da opciones:
  4. if (eval(Cartas[NroDeCartaDeHumano]+"Op") == 1) {
  5. // Se agrega un objeto que la ejecuta al presionar A:
  6. attachMovie("sParaCartaSimple", "Ventana", 4);
  7. } else {
  8. // Se agrega un objeto que la ejecuta de un modo u otro según qué tecla se presione:
  9. attachMovie("sParaCartaOpcional", "Ventana", 4);
  10. }
  11. }

Esto es el código en sParaCartaSimple:
Código
  1. onClipEvent (enterFrame) {
  2. // Si se presiona A:
  3. if (Key.isDown(65)) {
  4. _level0.UsarCartaSimple();
  5. removeMovieClip (_parent);
  6. }
  7. }

Este es en sParaCartaOpcional:
Código
  1. onClipEvent (enterFrame) {
  2. // Si se presiona izquierda:
  3. if (Key.isDown(37)) {
  4. // Humano eligió opción 1:
  5. _level0.CartaUsada = _level0.Cartas[_level0.NroDeCartaDeHumano]+"1";
  6. _level0.UsarCartaOpcional();
  7. removeMovieClip (_parent);
  8. } else if (Key.isDown(39)) {
  9. // Humano eligió opción 2:
  10. _level0.CartaUsada = _level0.Cartas[_level0.NroDeCartaDeHumano]+"2";
  11. _level0.UsarCartaOpcional();
  12. removeMovieClip (_parent);
  13. }
  14. }

Código
  1. function UsarCartaSimple () {
  2. // CartaUsada es para resumir:
  3. CartaUsada = Cartas[NroDeCartaDeHumano];
  4. User = "Humano";
  5. Ataque = eval(CartaUsada+"At");
  6. eval(CartaUsada)();
  7. }

Código
  1. function UsarCartaOpcional () {
  2. // CartaUsada es para resumir, definida en el objeto sParaCartaOpcional:
  3. User = "Humano";
  4. eval(CartaUsada)();
  5. }

Ejemplo de carta con opciones (el único que tengo por ahora):
Código
  1. function MarioDK1 () {
  2. Ataque = MarioDKAt;
  3. Mensaje = "¡Mario de Donkey Kong dañó al rival!";
  4. MarioDK();
  5. }
  6. function MarioDK2 () {
  7. HumanoHP--;
  8. if (HumanoHP > 0) {
  9. Ataque = MarioDKAt+1;
  10. Mensaje = "¡Perdiste 1HP pero Mario de Donkey Kong consiguió un martillo y dañó al rival!";
  11. MarioDK();
  12. } else {
  13. Mensaje = "¡Mario de Donkey Kong consiguió un martillo pero ya no tienes HP!";
  14. HumanoPierde();
  15. }
  16. }
  17. function MarioDK () {
  18. if (User == "Humano") {
  19. IAHP = IAHP-Ataque;
  20. if (IAHP > 0) {
  21. TerminandoTurnoHumano();
  22. } else {
  23. HumanoGana();
  24. }
  25. } else {
  26. // Aquí la IA debería poder elegir otra opción, pero es otro tema.
  27. HumanoHP = HumanoHP-Ataque;
  28. Mensaje = Mensaje+"\n¡Donkey Kong rival te dañó!";
  29. if (HumanoHP > 0) {
  30. TerminandoTurnoDeIA();
  31. } else {
  32. HumanoPierde();
  33. }
  34. }
  35. }

1era cuestión:
¿Es buena idea agregar un objeto invisible para que se capten unas teclas u otras según si la carta da opciones o no?

Creo que sí, una alternativa sería que fuese un único objeto y que esté haciendo un if constantemente de "si no tiene opciones, ver si se presiona A, sino ver si se presiona <- o ->", lo cual para mí es peor.
Lo malo en mi método es que el objeto se autoremueve luego de haber ejecutado funciones que llaman a otras así que no sé realmente cuando se remueve xP Aunque por ahora no noté errores. Además, un objeto con igual nombre es agregado cuando se recibe una carta, así que se sustituye al que hubiera si no se removió.
Otra opción es poner el código en frames y que haya goto al anterior, pero eso parece peor, es el mismo código en 2 frames (excepto por el goto) o se ejecuta cada 2 frames.
¿Se les ocurre algo mejor?

2nda cuestión:
Los objetos sParaCartaSimple y sParaCartaOpcional usan a funciones de la zona raíz, pero sólo los usan ellos, diferente cada uno, es decir las funciones podrían ser código en ellos ¿no sería mejor así?

El problema es que esos códigos deben hacer cambios en la raíz, entonces si estuvieran directamente en los objetos habría que poner _root. delante de varias variables, por eso a pesar del lío me parece mejor así como está (al llamar a la función de root, sólo habría que poner un solo _root delante) ¿pero no hay alguna forma mejor?
¿A mi Flash (Macromedia 5) le enlentece referencias como
_root.CartaUsada = _root.Cartas[_root.NroDeCartaDeHumano];
comparado con sin _root, o al compilarse el código da igual?


Pregunté a GPT sobre esto e interpretó que puede haber 2 movieclips a la vez chequeando teclas. No, es uno u otro. Sobre otras cosas quedé algo saturado, lo pensaré otro día.
https://poe.com/s/82EsYOmKzQuiyy9noUYz

 32 
 en: 7 Enero 2026, 21:26 pm 
Iniciado por fary - Último mensaje por Tachikomaia
A ver, creo que hace mucho un helado de McDonalds costaba $10, quizá $30.
El Famicom que me compraron que incluía como 40 juegos costó unos $400 o menos.

Hoy día, un helado cuesta como $50.
Significa que el precio de los helados se duplicó o quintuplicó, a lo mucho.

Un NES, que era peor que un Famicom en cuanto al precio y variedad obtenible de juegos (al menos aquí), a lo mejor costaba $1000.
Entonces, partiendo de ahí, y no del Famicom, o sea estoy siendo generoso, el precio se veinteplicó o como se diga.

Eso es lo que vale una PC último modelo más o menos... Con un PC puedes hacer mucho ¿debería una consola valer lo mismo?

 33 
 en: 7 Enero 2026, 16:26 pm 
Iniciado por Mr.Byte - Último mensaje por Mr.Byte
Que pensáis de esta noticia?
Traducida
https://techcrunch-com.translate.goog/2026/01/05/hacktivist-deletes-white-supremacist-websites-live-on-stage-during-hacker-conference/?utm_source=flipboard&utm_medium=activitypub&_x_tr_sl=auto&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=nui


Version original

https://techcrunch.com/2026/01/05/hacktivist-deletes-white-supremacist-websites-live-on-stage-during-hacker-conference/

 34 
 en: 7 Enero 2026, 15:07 pm 
Iniciado por fary - Último mensaje por fary
Hombre, cualquier consola te vale ya 500 euros pero sin pestañear... Si bien es cierto que lo peor que dicen es que los juegos son caros.


 35 
 en: 7 Enero 2026, 10:14 am 
Iniciado por Tachikomaia - Último mensaje por Tachikomaia
Estas fórmulas determinan hacia dónde irán los saques en mi juego Pong y la rotación de lo que sería la bola:
ApuntandoX = Math.random()*700-350;
ApuntandoY = Math.random()*375.5+20.5;
Rotando = Math.random()*200-100;

Si las entiendo bien,
el rango de ApuntandoX es -350~350,
de ApuntandoY es 20.5~400,
y de Rotando es -100~100.

El juego se pone más difícil entre con mayor diferencia vayas ganando, es decir hay una variable Dificultad, que inicia como 0 y va subiendo.

Quisiera modificar las fórmulas de modo que Dificultad influya.

En el caso de ApuntandoX, el resultado puede ser 0, pero si Dificultad es 10 por ejemplo, quiero que el rango sea -350~-10 y 10~350, es decir así con una zona de "valores prohibidos", básicamente es que entre mayor sea la dificultad, menos al centro irán los saques.

Rotando es parecido, entre mayor sea la dificultad, mayor será la mínima rotación inicial posible, es decir todos los tiros tendrán algo de rotación.

ApuntandoY sólo tiene valores positivos así que parece más fácil de resolver, algo como
ApuntandoY = Math.max(Math.random()*400, Dificultad+20.5);
...no estoy seguro.

 36 
 en: 7 Enero 2026, 08:10 am 
Iniciado por Tachikomaia - Último mensaje por Tachikomaia
El programa es un generador de 3 tipos de imágenes por ahora:

MuchoAzar: Lo que sería cada píxel lo pinta de un color al azar de una lista:


Cuadrados:


Y el que intento agregar: AzarrazA, que es como el azar pero simétrico así horizontalmente como se muestran las letras, no verticalmente.

Cuando se presiona un botón para cambiar el modo (en este caso a MuchoAzar), sucede esto:
Código
  1. on (release) {
  2. Modo = "MuchoAzar";
  3. RepintarCuadraditos();
  4. }

Es decir se usa esto:
Código
  1. function RepintarCuadraditos () {
  2. NroDelCuadroaRepintar = 0;
  3. do {
  4. NroDelCuadraditoaRepintar = 0;
  5. // p representa un ".", "punto".
  6. Cuadro_pCuadradito = "Cuadro"+NroDelCuadroaRepintar+".Cuadradito";
  7. if (Modo == "Cuadrados") {
  8. // Inicialmente los cuadraditos del cuadro tendrán...
  9. // el mismo color:
  10. ColorDelCuadro = PosiblesColores[random(PosiblesColores.length)];
  11. trace("ColorDelCuadro: "+ColorDelCuadro);
  12. }
  13. do {
  14. Cuadro_pCuadradito_ = Cuadro_pCuadradito+NroDelCuadraditoaRepintar;
  15. ParaColorDeCuadradito = new Color(Cuadro_pCuadradito_);
  16. if (Modo == "MuchoAzar") {
  17. ParaColorDeCuadradito.setRGB(PosiblesColores[random(PosiblesColores.length)]);
  18. } else if (Modo == "Cuadrados") {
  19. ParaColorDeCuadradito.setRGB(ColorDelCuadro);
  20. }
  21. NroDelCuadraditoaRepintar++;
  22. } while (NroDelCuadraditoaRepintar<Cuadraditos);
  23. NroDelCuadroaRepintar++;
  24. if (Modo == "Cuadrados") {
  25. GenerarCuadrados();
  26. }
  27. } while (NroDelCuadroaRepintar<Cuadros);
  28. }

En ese código debo poner el caso para el modo AzarrazA ¿cómo me conviene ponerlo?
Es que en ese código todos los cuadraditos se pintan de una u otra forma, pero en este caso si están a la derecha del medio (de un cuadro, no de la pantalla) van a tener que imitar el color que se haya seleccionado para su pixel (o cuadradito) opuesto, lo que se me acaba de ocurrir es poner:
Código
  1. if (Modo == "MuchoAzar") {
  2. ParaColorDeCuadradito.setRGB(PosiblesColores[random(PosiblesColores.length)]);
  3. } else if (Modo == "AzarrazA") {
  4. Si el cuadradito a pintar no está a la derecha del centro del cuadro:
  5. ParaColorDeCuadradito.setRGB(PosiblesColores[random(PosiblesColores.length)]);
  6. sino
  7. pintarlo igual que su opuesto
  8. fin del si
  9. } else if (Modo == "Cuadrados") {
  10. ParaColorDeCuadradito.setRGB(ColorDelCuadro);
  11. }

Creo que con eso estaría bien, pensé que no porque tengo la manía de querer evitar ifs, ah, cierto ¿no sería mejor crear un código aparte para los que deba pintar al azar y luego otro para los que deban ser imitaciones? El problema es que parece más complicado hacerlo.

 37 
 en: 7 Enero 2026, 05:49 am 
Iniciado por fary - Último mensaje por Tachikomaia
Según vi son 469.99 euros, que en pesos uruguayos son casi $22000. A menos que la consola ponga huevos de oro o algo parecido, para mí no. También habría que gastar en juegos. Si tienes PC debería bastarte con juegos de PC y emuladores. Con ese dinero, capaz que podrías abrir una empresa o algo, no sé.

 38 
 en: 7 Enero 2026, 01:36 am 
Iniciado por El_Andaluz - Último mensaje por El_Andaluz
Citar
¿Es una especie de jaula y los cangrejos quedan en una especie de vasito? No entendí eso.


Se trata de una Red de Cesta para Cangrejos LINEAEFFE con Cuerda y Flotador | Red de Retención Duradera para Cangrejos https://www.tradeinn.com/waveinn/es/lineaeffe-rejoncillo-crab-drop-with-rope/137388717/p?utm_source=google_products&utm_medium=merchant&id_producte=9864770&country=es&gclsrc=aw.ds&gad_source=1&gad_campaignid=23205253882&gbraid=0AAAAADvzHL8ryz4FJ340ncrpLntG6uuY4&gclid=EAIaIQobChMIurXfhpP4kQMVvvx5BB3U7ihYEAQYASABEgLAx_D_BwE


Luego aparte se compra una bolsas o unos sacos donde se mete el cebo que suele comer los cangrejos suelen ser crustáceo el cebo que se meten en esas bolsistas puede ser de color naranja o de otro color como se ve en la foto donde lo esta cogiendo el lobo, esas bolsa se meten dentro de la red en el fondo de la cesta y luego lo sumerges dentro del agua el cangrejo entra y la bolsa se cierra y ya el cangrejo no puede salir se queda atrapado es que hay varios tipo de trampas para cangrejo esta creo que funciona así.



 39 
 en: 6 Enero 2026, 23:21 pm 
Iniciado por fary - Último mensaje por fary
Merece la pena comprarla si o no? Me lo estoy planteando :rolleyes:

 40 
 en: 6 Enero 2026, 22:20 pm 
Iniciado por El_Andaluz - Último mensaje por Tachikomaia
¿Es una especie de jaula y los cangrejos quedan en una especie de vasito? No entendí eso.

Bien por los lobos, pero ¿ellos las vuelven a poner? Sino, no creo que sea uso de herramientas, es más como arrastrar a un animal mordiéndole una pata en vez de las costillas o algo así.

Páginas: 1 2 3 [4] 5 6 7 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines