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

 

 


Tema destacado: Curso de javascript por TickTack


  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 ... 183
51  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?
52  Foros Generales / Foro Libre / Re: ¿Cuál es la mejor manera que eliges para conseguir tráfico para el sitio web? en: 30 Enero 2024, 08:41 am
Lo normal en casos como tú es que pongan el link en sus mensajes, pero te lo borran o pueden borrar por spam y para varios (me incluyo) ponerlo así no está bien visto, pero en tu firma podría ser, si no es muy grande ni muy pesada, etc. Haz una imagen a la que den ganas de cliquear, probablemente animada, con promesas, que luego se cumplan porque sino serán pocos quienes cliqueen más de 1 vez. Pero en algunos foros te pueden banear si lo 1ero que haces o una de las 1eras cosas es decir que buscas atraer gente a tu página, baneo por spammer.

Supongo que no es cierto que uno debe preocuparse sólo por el contenido, que si es bueno luego la gente viene sola (además si tu página no es conocida alguien "famoso" te puede copiar lo que pongas y no te enteras, ni sus seguidores , no consigues tus merecidas visitas y puede ser difícil demostrar que eres el autor (o que a los seguidores del otro les importe)), pero... No parece buena idea tener una página chorra y querer visitas, serías molesto, lo 1ero es tener una buena página, de buen contenido.

Hecho eso puedes poner carteles por ahí ofreciendo premios a quien logre mejor cierto desafío que requiera visitar tu página. Por ejemplo una "búsqueda de tesoro", con acertijos y pistas, en tu página, de modo que haya que acceder a distintas zonas de ella. Pero que sean ligeras de cargar, sino sería mejor que pongas todo en el mismo lado, aunque con ello sólo consigas pocas visitas. Porque sino no es ético, yo no quisiera estar paseando por una página viendo las mismas propagandas o cosas sólo porque el creador desparramó todo en distintos lados como hacen algunas. "Top 50 de" y te muestran 5 puestos en cada hoja, y la mayoría de la página son propagandas, esas páginas son caca. O te cuentan una historia de la misma manera, tienes que cargar como 10 páginas, que en su mayoría son propaganda, para verla toda.

También podría ser que cada día se den nuevas pistas, así que la gente interesada debería entrar más seguido. O incluso dar un mensaje de "Tu respuesta será evaluada, vuelve en 24hs", si es cierto que no puedes automatizar o agilizar eso. Si puedes entonces no mientas @!&#.

En fin, se me acabó la inspiración xP
53  Foros Generales / Foro Libre / Re: Donde podría viajar? en: 29 Enero 2024, 21:42 pm
A Ucrania a hacer preguntas sobre el clima de Jamaica a los rusos, seguro que con eso querrán irse.

También te recomiendo Chernóbil e ir a ver el Titanic, es algo que más de uno se muere de ganas de hacer.

https://www.youtube.com/watch?v=vXaaBy_13ZE

https://www.youtube.com/watch?v=avi_hma1O78
54  Programación / Scripting / Re: convertir todo a mayuscula, 1ra palabra en mayuscula y concatenar si no esta vacio en: 29 Enero 2024, 08:04 am
No entiendo qué quieres, "todo en mayúscula" y "1ra palabra en mayuscula" parece una contradicción o redundante, no sé. Y si está vacío se concatena un "" que es nada, como si no se concatenara, pero si es por evitar hacerlo en vano sería:
Código:
Si Variable != "" && Variable != Undefined
  // Concatenar
Dependerá de tu lenguaje cómo se hace.

si la persona tiene 2,3 o 4 nombres, cuando complete estos datos en el input de Nombres, me pase a mayúscula la 1ra letra de cada palabra.
- Crea una variable con todas las mayúsculas: "ABC..."
- Crea más inputs.
- Averigua cual es el código acii o lo que sea de la 1era letra de un input que te interese.
- Si es minúscula (menor/mayor que cierto número), le sumas/restas algo (debes calcularlo) de modo que el resultado corresponda con el nro de caracter en la variable que tiene las mayúsculas, y sea la que quieres. Sino, si el caracter es "ñ" lo sustituyes por "Ñ". Bueno, con los tildes puede que debas hacer lo mismo, si hay nombres que empiecen con tilde, no sé. Quizá tu lenguaje te da facilidad con esto, te dije lo de la ñ porque suele tener número acii muy distinto.
- Sustituyes el 1er caracter de tu input por ese que obtuviste.
- Repites el proceso desde Averigua para tantos inputs como quieras.

Si no quieres crear más inputs, debes mirar caracter por caracter buscando " " (asumiendo que la persona dejó un espacio en vez de escribir alex,beto o quién sabe qué) y lo que haya luego lo sustituyes como te expliqué arriba. Oh, pero quizá haya una función "convertir en mayúscula", no sé. Si la persona escribie "alex  beto" es decir si deja dos espacios, bueno, deberás chequear que lo que haya luego del espacio sea una letra y sino que siga buscando " ". Si escribe "al ex" por error entonces tu programa asumirá que son 2 nombres.

En fin, si la persona escribe mal su nombre que se joda ¿no? ¿tan difícil es poner una mayúscula para ella o el empleado?

Si deben ser nombres deberías llamarle Nombres no Nombre.

Quieres textos como:
"El Señor Jose Maria CORREA, de estado civil separado, es hijo de Maria Rodriguez."

¿Y dices que puede no escribir apellido ni nombre? Si no escribe por lo menos el apellido debería dar error ¿no? Si nada escribe ¿qué obtendría?
"El Señor, de estado civil separado, es hijo de Maria Rodriguez."
¿será Jesús?  :laugh:
¿o quieres "El Señor de estado civil separado, es hijo de Maria Rodriguez."?

¿Y si no escribe en Madre quieres:
"es hijo de."
o
"es hijo de ."
?

Los pseudocódigos para eso son muy parecidos, pero bue.

Tu lenguaje no lo entiendo.
55  Foros Generales / Foro Libre / Re: Ajedrez simplificado: Rey vs Rey y Peón en: 29 Enero 2024, 07:05 am
Aparentemente no tiene gracia, blancas empatan si no cometen errores.

Aquí una partida de yo vs yo  :P:
https://drive.google.com/file/d/1x4et4dhKx7whWQjjzzZraDBOPBzYAt85/view?usp=sharing

Creo que mi error era moverme a D1 en la situación que ocurre en 0:42:


Me recomendaron esto, está bien:
https://youtu.be/VcUxuxIEWM4

¿Cometí algún error con negras?


Pongo otros desafíos:
Aquí 2 partidas con varias cancelaciones cada una (es que reempezar a grabar toma tiempo, es más fácil así, además no tiene sentido repetir los mismos movimientos).
https://drive.google.com/file/d/1QWg-6vbKsEkLTdr8mVj8KyN7Sc4LTQCs/view?usp=sharing
¿Qué errores cometí con cada color?

Para los que no puedan ver el video:
- Empiezan blancas.
- Blancas ganan si destruyen una pieza. Sino deben estirar la partida lo más posible.
- Negras deben ganar lo más rápido posible pero sin perder pieza.

Partida 1:


Partida 2:


¿Cómo jugarían cada una con cada color?
56  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.
57  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.
58  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.
59  Seguridad Informática / Hacking / Re: Hosting Microsoft. en: 27 Enero 2024, 11:24 am
¿No? Prueba preguntar en un foro sobre Windows, Office, etc, o alguna página de Facebook sobre eso, o de otra plataforma.
60  Foros Generales / Dudas Generales / Re: ¿Sin entreverarse cómo hacer una lista de posibilidades? en: 26 Enero 2024, 12:41 pm
Ya que respondieron comento algo que hice, justo hace un rato pero necesita varios ajustes:
Código
  1.   actions for fotograma 1
  2.      // Frames.
  3.      V1 = 0;
  4.      Max1 = 7;
  5.      V1Texto1 = "Casos de ";
  6.      V1Texto2 = "1er Frame en que ";
  7.      V1Texto3 = "Frames en que ";
  8.      V1Texto4 = "En 10 Frames, mínimos casos de ";
  9.      V1Texto5 = "En 10 Frames, máximos casos de ";
  10.      V1Texto6 = "En 10 Frames, mínima cantidad de Frames en que ";
  11.      V1Texto7 = "En 10 Frames, máxima cantidad de Frames en que ";
  12.      // Mov.
  13.      V2 = 1;
  14.      Max2 = 4;
  15.      V2Texto1 = "";
  16.      V2Texto2 = "Mov + ";
  17.      V2Texto3 = "Frenada + ";
  18.      V2Texto4 = "Moviéndose + ";
  19.      // Clic.
  20.      V3 = 1;
  21.      Max3 = 4;
  22.      V3Texto1 = "";
  23.      V3Texto2 = "Clic + ";
  24.      V3Texto3 = "Desclic + ";
  25.      V3Texto4 = "Cliqueando + ";
  26.      // Clac.
  27.      V4 = 1;
  28.      Max4 = 4;
  29.      V4Texto1 = "";
  30.      V4Texto2 = "Clac + ";
  31.      V4Texto3 = "Desclac + ";
  32.      V4Texto4 = "Claqueando + ";
  33.      // Final.
  34.      V5 = 1;
  35.      Max5 = 3;
  36.      V5Texto1 = "Nada";
  37.      V5Texto2 = "Algo";
  38.      V5Texto3 = "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+": "+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.  

Primeros traces:
Citar
5: Casos de Nada
6: 1er Frame en que Nada
7: Frames en que Nada
8: En 10 Frames, mínimos casos de Nada
9: En 10 Frames, máximos casos de Nada
10: En 10 Frames, mínima cantidad de Frames en que Nada
11: En 10 Frames, máxima cantidad de Frames en que Nada
5: Mov + Nada
6: Casos de Mov + Nada
7: 1er Frame en que Mov + Nada
8: Frames en que Mov + Nada
9: En 10 Frames, mínimos casos de Mov + Nada
10: En 10 Frames, máximos casos de Mov + Nada
11: En 10 Frames, mínima cantidad de Frames en que Mov + Nada
12: En 10 Frames, máxima cantidad de Frames en que Mov + Nada
6: Frenada + Nada

Repito: Necesita varios ajustes, en un tiempo los hago:
> Las sumas están mal. Normal porque el mínimo valor de cada cosa es 1, al valor habría que restarle 5.
> Produce combinaciones inválidas (Casos de Nada). Es difícil evitar esto, pero creo que serán pocos casos que puedo quitar manualmente.
> No siempre está bien expresado ("1er Frame en que Nada", falta agregar " ocurrió"). También es difícil de lograr aquí (porque no siempre debe hacerse lo mismo), pero no es tan importante y con reemplazar de Excel lo puedo arreglar creo.
> Produce combinaciones sin inicio (Mov + Nada). Creo que porque puse que el Puntero se reseteara a 0, pero debe ser 1.

Agregué un par de casos así que hubiera tenido que rehacer todo lo de Excel, así que decidí probar programarlo y fue más fácil de lo que pensé.
Páginas: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ... 183
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines