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


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 ... 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 30 31 32 33 ... 240
171  Media / Juegos y Consolas / Idear un juego muy simple (es complicado). en: 21 Diciembre 2024, 07:13 am
Inventa un juego (sólo uno) que tenga estas características:
El personaje:
- Se ve de perfil.
- Sólo puede avanzar a la derecha o detenerse, significa que no se puede agachar, ni saltar, ni girar, ni retroceder, ni activar un escudo, ni disparar, ni hacerse intangible, ni hablar, etc.
- Su apariencia (sprite, dibujo) no cambia.

Los enemigos u objetos peligrosos:
- Se ven de perfil.
- Aparecen desde la izquierda y avanzan hacia la derecha, sin parar. Nada más, no disparan, no se elevan, no giran, no hablan, etc.
- Su apariencia (sprite, dibujo) no cambia.

Victoria:
Cuando el personaje llega al extremo derecho de la pantalla.

Derrota:
Cuando el personaje es tocado mientras avanza (si está quieto no hay derrota, debes inventar una justificación para esto).

Citar
### Juego: **"La Marcha del Mensajero"**

**Descripción del juego:** 
En un mundo desolado, el último mensajero de un reino en ruinas debe llevar un pergamino crucial al otro extremo de una vasta llanura. El mensajero, siempre caminando hacia el horizonte, no puede detenerse por completo, pero tiene un extraño poder: si se queda quieto en el momento exacto, los enemigos lo ignoran por completo, como si no pudieran verlo. Sin embargo, si se mueve mientras lo tocan, su misión fracasará.

---

### Mecánicas del juego:

1. **Movimiento del personaje**:
   - El jugador puede **avanzar** hacia la derecha presionando una tecla (por ejemplo, la flecha derecha).
   - El jugador puede **detenerse** soltando la tecla, pero no puede retroceder ni realizar ninguna otra acción.

2. **Enemigos**:
   - Los enemigos son criaturas sombrías que aparecen desde el lado izquierdo de la pantalla y se mueven constantemente hacia la derecha, siguiendo trayectorias directas.
   - Si un enemigo toca al personaje mientras este está en movimiento, el jugador pierde.
   - Si el personaje está completamente detenido, los enemigos simplemente pasan de largo, como si no lo vieran.

3. **Victoria y derrota**:
   - **Victoria**: El mensajero llega al extremo derecho de la pantalla, completando su misión.
   - **Derrota**: El personaje es tocado por un enemigo mientras está en movimiento.

4. **Justificación de la mecánica de derrota**: 
   El mensajero lleva un pergamino mágico que emite un brillo mientras está en movimiento, lo que atrae a las criaturas sombrías. Sin embargo, si se detiene por completo, el pergamino deja de brillar, volviéndose invisible para los enemigos.

---

### Elementos visuales y diseño:

1. **El personaje**:
   - Un sprite sencillo de perfil que representa al mensajero, vestido con una túnica y cargando un pergamino. Su animación es estática, sin cambios, incluso al moverse.

2. **Enemigos**:
   - Criaturas de sombra de perfil, con formas indefinidas y terroríficas. Se mueven constantemente desde la izquierda hacia la derecha.

3. **Entorno**:
   - Un fondo minimalista que representa una llanura desierta. El paisaje no cambia.

---

### Dinámica del juego:

El jugador debe calcular cuidadosamente cuándo avanzar y cuándo detenerse. Al detenerse, los enemigos pasan de largo, pero si el jugador se queda detenido demasiado tiempo, el ritmo del juego se vuelve más difícil porque los enemigos se acumulan, dejando menos tiempo para avanzar entre ellos. La clave es encontrar el momento exacto para avanzar sin ser tocado.

---

**Ejemplo de escenario en el juego:**
- Un enemigo aparece por la izquierda y se acerca lentamente.
- El jugador, avanzando, se detiene justo antes de que el enemigo lo alcance.
- El enemigo pasa de largo, y el jugador aprovecha para avanzar un poco más antes de que llegue el próximo enemigo.

**Dificultad progresiva:**
- A medida que pasa el tiempo, los enemigos aparecen con mayor frecuencia y velocidad, obligando al jugador a reaccionar más rápido.

---

### Nombre del juego: **"La Marcha del Mensajero"**

Este juego pone a prueba la paciencia, los reflejos y la capacidad de tomar decisiones rápidas del jugador. ¡Solo los más precisos podrán completar la misión y salvar el reino!

¿Podría ser uno que no requiera dar explicación al jugador? Una situación en que sea evidente por qué debe quedarse quieto. Lo más parecido que se me ocurre es que hay robots que captan el movimiento, solo el movimiento.


Sobre eso su respuesta fue desarrollar esa idea, pero esa idea no sirve, quise decir.

En cuanto a esto que puse al inicio "(sólo uno)", es porque ya había intentado esto, me dijo varios, le intenté decir sus fallas, y me aparecía un mensaje de que se necesitaban más puntos de los que puedo enviar por mensaje, y al parecer no era que se me hayan acabado los puntos del día.
172  Seguridad Informática / Análisis y Diseño de Malware / Re: Creacion de malware de rastreo en: 20 Diciembre 2024, 23:08 pm
No sabía que hacían eso, vaya. Cuando dijiste usurpación de identidad, al inicio, pensé que te referías a gente que robaba cuentas.
173  Seguridad Informática / Análisis y Diseño de Malware / Re: Creacion de malware de rastreo en: 20 Diciembre 2024, 18:39 pm
si es por watss, hay un script embedido en imagen que te da la ubicacion y otra informacion sobre la persona que abrio la imagen por el watsspapa, no te lo pongo por aca porque hay reglas y despues me borran los mensajes.
Pensé que había pedido que los archivos de video tuvieran el malware y cada vez que se moviera se enviara información al malvado espía. Eso parecía imposible, a menos que se creara otro tipo de formato, o sería un programa que esté captando qué se mueve, el malware no estaría en el video en sí.

Lo que dices parece más posible ¿pero el antivirus lo capta?

Cuando suben un video ilegal (sea de una serie, o uno copiado de Onlyfans, etc), si lo hacen por una VPN tengo entendido que no se puede saber quién fue.

Pero cuando se mira videos ilegales, imagino que sí. Hasta me parece preocupante que no se castigue por hacerlo, pero ojalá siga así. Yo miro series pirata, sí, no puedo pagar. Y videos de los otros, a veces he visto "hidden camara" porque aburre tanta actuación exagerada a veces, o tanto bombo hardcore que parece que no lo disfrutaran, busco entonces algo más real, pero lo que he visto en general es desagradable, no son mujeres bonitas o no se ven las caras. Lo de Onlyfans ya es como que me tiene harto, o sea, hay páginas en que la mayoría de videos sugeridos son de ahí, de más o menos las mismas personas, que no me interesan. Quizá sea autopromoción.
Ahora bien, eso de detectar quién mira qué videos, debería hacerlo la policía, no tú. ¿Qué harás, poner videos ilegales y ver quién los descarga?
174  Programación / Programación General / De una cadena, quitar la subcadena especificada, tantas veces como se repita. en: 20 Diciembre 2024, 05:52 am
Por ejemplo de la cadena "121213121", quitar toda subcadena "121". No es un ejemplo cualquiera, intento mostrar que hay 2 interpretaciones:

A: Quitamos el 1er 121: 121213121
Siguiente: 213121
Resultado final: 213

B: Debemos quitar:
esto: 121213121
y esto: 121213121
O sea: 121213121
Resultado final: 3

Hice algo parecido a esto, sólo sirve si la subcadena tiene 1 solo caracter (y en tal caso no hay ambiguedad):
Código
  1. Cadena = "121213121";
  2. CaracteraQuitar = "1";
  3. // Cadena a la que se agregarán los caracteres que no deban quitarse:
  4. NuevaCadena = "";
  5. PunteroDeCaracteres = -1;
  6. do {
  7. PunteroDeCaracteres++;
  8. CaracterSeñalado = Cadena.charat(PunteroDeCaracteres);
  9. // Si el caracter señalado no es como CaracteraQuitar:
  10. if (CaracterSeñalado != CaracteraQuitar) {
  11. // Agregarlo a NuevaCadena:
  12. NuevaCadena = NuevaCadena+CaracterSeñalado;
  13. }
  14. } while (PunteroDeCaracteres<Cadena.length);
  15. trace(NuevaCadena);

Intenté que elimine subcadenas de cualquier extensión, usando un método que me enseñaron, pero me tranqué:
Código
  1. Cadena = "121213121";
  2. CaracteraQuitar = "121";
  3. // Ver si el CaracteraQuitar está en Cadena:
  4. // Esto es porque en este lenguaje...
  5. // no se puede quitar un caracter de modo simple:
  6. // De Cadena se quitará...
  7. // cada presencia del CaracteraQuitar:
  8. NuevaCadena = Cadena;
  9. do {
  10. SeQuitoCaracter = "No";
  11. SaveDeNuevaCadena = NuevaCadena;
  12. // Obtener la cadena anterior a la presencia...
  13. // del CaracteraQuitar, si es que él está presente
  14. // (queda un array, join("") es para que se...
  15. // transforme en un string sin separaciones):
  16. NuevaCadena = NuevaCadena.split(CaracteraQuitar).join("");
  17. // Obtener el resto de la cadena:

¿Se puede hacer A con este método o no? ¿y B?

Acabo de probarlo sin el do y al parecer sólo funciona si CaracteraQuitar es 1 caracter. El nombre debería ser SubcadenaaQuitar, pero es otro tema.

¿Debería intentarlo ajustando mi 1er código o hay una manera mejor?
175  Programación / Programación General / Re: Correcta y rápida evitación de dibujos sin pintados en alguna fila y columna. en: 18 Diciembre 2024, 18:32 pm
No parece tan sencillo, según lo que pensé:


Puede haber más casos a tener en cuenta, puede haber errores en lo que pensé... Aún no tengo una fórmula general. Tampoco estoy seguro de que convenga hacerlo, ya lo comenté. Lo que se me ocurrió ahora es que quizá hay alguna ecuación que permita generar solamente los números que se quieren, porque los dibujos son también números. ¿Ideas sobre eso?
176  Programación / Programación General / Re: Ayuda con las funciones de string de AS 1.0. en: 18 Diciembre 2024, 03:56 am
Intenté, ahora, usar la que se supone que remueve el caracter especificado (no el de la posición especificada):
Nota: Fija iba a ser un número pero como no funciona, probando lo cambié a un string:
Código
  1. Fija = "12345";
  2. // El que será probado 1ero:
  3. Candidato = 1;
  4. // Mensaje que se mostrará en pantalla:
  5. Respuesta = "A "+Fija+" se le quita el caracter o grupo C. Asignar un valor a C para que luego del proceso, "+Fija+" < C. Se recomienda... ";
  6. // Se repite en F2:
  7. function ProbarCandidato () {
  8. trace ("Probando el Candidato "+Candidato);
  9. // Ojo que si Candidato tiene largo 2 se haría otra cosa:
  10. NuevaFija = Fija.split(Candidato);
  11. trace ("NuevaFija: "+NuevaFija);

Eso es parte del código, que me da esto:
Probando el Candidato 1
NuevaFija: ,2345
No se logró el objetivo.
Candidato fue modificado, es 2
Probando el Candidato 2
NuevaFija: 1,345
No se logró el objetivo.
Candidato fue modificado, es 3
Probando el Candidato 3
NuevaFija: 12,45

Según veo, es un array, de hecho la descripción dice que genera uno, ok. ¿Y lo puedo convertir en una cadena usando .join? Veo que no, por lo que dijo EdePC. ¿Entonces en este caso deberé usar un while?
177  Programación / Programación General / Correcta y rápida evitación de dibujos sin pintados en alguna fila y columna. en: 16 Diciembre 2024, 19:00 pm
Se quiere, entre otras cosas, que los dibujos generados en blanco y negro tengan algún cuadradito pintado (negro) en cada fila y columna.

El 1ero es así:
BBN
BNB
NBB

Va pintando y despintando, desde abajo a la izquierda.

En cierto punto, queda así:
BBN
BNN
BBB
Ese no debe mostrarse. El programa continuará pintando y despintando, hasta hallar un dibujo que cumpla las condiciones. Pero puede verse que, por el orden conque pinta, se generarán varios dibujos que no servirán.

Para evitar eso, puse en el código, que mire cada columna y fila, comenzando desde la izquierda y abajo, y, bueno, esto:
Código
  1. } else if (SinPintadosEn == "Columna") {
  2. // El puntero se pone en la columna indicada,
  3. // de la última fila:
  4. Puntero = CuadraditosPorFila*(CuadraditosPorFila-1)+Puntero2;
  5. } else if (SinPintadosEn == "Fila") {
  6. // El puntero se pone en la fila indicada,
  7. // de la última columna:
  8. Puntero = CuadraditosPorFila*Puntero2;
Si se detecta una columna sin pintados, enseguida el programa hace eso, pintará un cuadradito inferior, en la columna donde haga falta. El Puntero indica cual se pintará.
Si en cambio detecta una fila sin pintados, también enseguida pintará uno, a la derecha, en la fila donde haga falta.

Pensé que eso era bueno, pero hace que algunos dibujos correctos no se muestren, la versión antigua del programa está en la izquierda:
https://youtu.be/iZuwk7YcGaw

Quizá la solución sea, en vez de pintar enseguida al detectar una falla, terminar de revisar cada fila y columna, y si se detecta una falla en ambos casos entonces pintar el cuadradito que solucione ambas. Pero no estoy seguro de que funcione bien, a estas alturas. Además, cuando sólo falle en 1 aspecto, estará revisando medio en vano, quizá sea mejor producir los dibujos normalmente y no mostrarlos si no cumplen las condiciones. Lo que estoy intentando es evitar que se produzcan innecesarios, pero si requiere análisis "innecesarios", no sé si es mejor. ¿Sugerencias?

Código en cuestión:
Código
  1. // Para juzgar:
  2. // ¿El dibujo tiene cuadraditos pintados en toda columna y fila?
  3. Puntero2 = CuadraditosPorFila;
  4. // Esto puede que cambie:
  5. CuadraditoenCadaFyC = "Sí";
  6. do {
  7. // ¿La columna Puntero2 no tiene algún cuadradito pintado?
  8. if (eval("PintadosenC"+Puntero2)<1) {
  9. CuadraditoenCadaFyC = "No";
  10. // Para saber qué corregir:
  11. SinPintadosEn = "Columna";
  12. } else if (eval("PintadosenF"+Puntero2)<1) {
  13. // La fila Puntero2 no tiene algún cuadradito pintado:
  14. CuadraditoenCadaFyC = "No";
  15. SinPintadosEn = "Fila";
  16. } else {
  17. Puntero2--;
  18. }
  19. } while (CuadraditoenCadaFyC == "Sí" && Puntero2>0);
  20. // ¿El dibujo tiene cuadraditos pintados en toda columna y fila?
  21. if (CuadraditoenCadaFyC == "No") {
  22. // No, no mostrarlo y hacer otro:
  23. // trace ("    No ocupa cada F y C, salteándolo.");
  24. DibujosPequeños++;
  25. // Actualizar MinCuadraditoPintado si corresponde:
  26. if (Puntero<MinCuadraditoPintado) {
  27. // Esto no viene al caso.
  28. } else if (SinPintadosEn == "Columna") {
  29. // El puntero se pone en la columna indicada,
  30. // de la última fila:
  31. Puntero = CuadraditosPorFila*(CuadraditosPorFila-1)+Puntero2;
  32. } else if (SinPintadosEn == "Fila") {
  33. // Probablemente es innecesario poner la condición
  34. // El puntero se pone en la fila indicada,
  35. // de la última columna:
  36. Puntero = CuadraditosPorFila*Puntero2;
  37. } else {
  38. // Probablemente es innecesario poner este else y su contenido
  39. // El puntero se pone en el cuadradito inferior derecho:
  40. Puntero = MaxPosiciondePuntero;
  41. trace("Caso que no debería ocurrir");
  42. }
178  Seguridad Informática / Seguridad / Re: es posible que te rastreen desde las cookies? en: 16 Diciembre 2024, 02:51 am
Avast me dice a veces que tengo una cookie de seguimiento, que me están siguiendo, así que como dice Daniel pensé que las cookies eran algo que se generaba en la PC del visitante, no en la PC donde está la página, pero sobre si te pueden rastrear por una o qué son exactamente, no sé.

Posiblemente te refieres a otra cosa. En el juego Uplink (creo que se llamaba así) que me mostraron hace tiempo, me recomendaron borrar los rastros que dejara en las PC atacadas. Nunca lo jugué, pero debe ser algo así, registros de visitantes y eventos. Muchas páginas deben de tener, varias otras quizá no... Pero dicen que a los piratas no los cazan, en general. Sino mira las páginas de cosas piratas que hay sin que el FBI o cosas así las cierren. O es muy difícil o no lo intentan realmente. Animefenix cerró recientemente, pero bue, la gente dice que son como hidras.
179  Programación / Desarrollo Web / Re: Cual es el mejor software para foros? en: 16 Diciembre 2024, 02:42 am
wanchopeee: Crea otro tema y pregunta eso.
180  Programación / Programación General / Re: ¿Cómo aprender a hacer programas que resuelvan dudas? en: 16 Diciembre 2024, 02:32 am
Estoy retomando esto.

La duda más simple, digamos, la de decir un número mayor a otro X, conocido, tiene estas características:
- Sólo tiene 1 variable, X.
- La variable es de tipo número positivo entero.
- El candidato (el valor que se prueba como posible solución) no tiene partes, es sólo 1 variable de tipo número positivo entero.
- Sólo tiene 1 condición a cumplir.
- La condición es de tipo "candidato", "símbolo comparador", "valor". El candidato es el valor que se prueba como posible solución.
- Se puede resolver mediante 1 acción.

Pueden nombrarse más, pero no tiene mucho sentido hacerlo, me parece.

¿Cuales serían las siguientes dudas, un poquito más complicadas?

Si agregamos más variables como X, es decir, si por ejemplo hay varios números a superar, eso implica que la condición a cumplir se complicará ¿verdad? Por eso por ahora, prefiero aumentar o complicar otra cosa, algo que no implique complicar otras cosas.

En cuanto a complicar X:
Si lo hacemos negativo, la duda podría ser cual es su número contrario, pero eso implica complicar la condición a cumplir, ya no es comparar 2 números sino que se requiere cierto proceso. Otro ejemplo no se me ocurre, decir un número menor al negativo implicaría complicar al candidato pues ya no podría ser positivo.
Si a X la hacemos decimal, si es positivo, no habría diferencia. Si la duda fuese adivinar X, eso implica complicar al candidato y especialmente el modo conque varía, ya que no es lo mismo sumarle 1 que sumarle distintas cantidades decimales.
Si a X la hacemos un texto, ya no es algo que se pueda superar (si hablamos de longitud, eso es complicar la condición a cumplir). Si la duda fuese adivinar el texto, eso implica complicar al candidato y cómo varía.

Hacer que el candidato tenga partes parece que complica su aplicación, por ejemplo si la duda fuese hallar 2 números que al multiplicarse resulten X, entonces hay que multiplicarlos en vez de simplemente comparar uno.
Además no se me ocurren muchas dudas así, que dado un número haya que decir varios números que deban cumplir alguna condición. ¿Se les ocurre?

Que el candidato sea negativo, decimal o texto, complica el cómo varía. Además X es un positivo entero, así que:
Si el candidato es un negativo ¿para qué? No para superar a X. ¿Para ser superado? Sería demasiado fácil. Otros objetivos complican la condición, creo.
Si el candidato es un decimal ¿para qué? Podría ser porque la situación lo requiere, como si fuese un desafío. Bueno, pero no tiene mucho sentido.
Si el candidato es un texto, no podrá superar a un número. En longitud, ya se ha dicho, es otra cosa. Si el texto representa otro sistema de numeraciòn, puede ser, pero no me gustan ese tipo de dudas, de convertir gramos en moles, número en texto, etc xP

Agregar una condición parece implicar agregar una variable o complicar la complejidad de la condición. Por ejemplo, en vez de que el candidato (C) simplemente deba ser mayor a X, puede ser X < C < Y. Se agregó la variable Y. Si decimos que C deba ser un número primo, eso implica procesos, no una comparación simple.

El tipo de condición a cumplir, sí, por fin, parece poder complicarse sin que eso implique complicar otras cosas. Es lo que quiero complicar, por eso. Teníamos que C > X. Podemos cambiarlo, por ejemplo, a que C sea más largo que X. Esto me lleva a la pregunta de cuales son los procesos que se pueden aplicar en C, que resulten en un valor no azaroso. Ordenados por complejidad.

Dificultad 0: No hay proceso, C se usa como tal:
C > X, o C == X, etc, depende del contexto.

A continuación digo procesos y ejemplos de condición a cumplir, en definitiva son dudas o desafíos, quisiera que agreguen a la lista, y los ordenen por complejidad.
Ah, los procesos no deben implicar variables, más allá de X y C. Por ejemplo C+Y > X no sirve porque se agregó la variable Y.
Y los procesos los clasifico en 4 tipos para más claridad.

Procesos que sólo quitan caracteres (recuérdese que C es entero positivo, así que el caracter 0 no siempre se podría quitar):
- C quita el caracter nro C a X ¿qué valor debe tener C para que luego del proceso se cumpla que C+C < X?
- A X se le quitan caracteres, desde el inicial hasta X ¿qué valor debe tener C para que luego del proceso X sea un número más divisible que antes?
- A X se le quitan caracteres, desde el último hasta X ¿qué valor debe tener C para que luego del proceso X sea un número menos simétrico que antes?

Procesos que no cambian los caracteres, sólo los cambian de lugar:
- Desde el inicio de X se busca un caracter C, y se pone en el lugar C ¿qué valor debe tener C para que luego del proceso X sea mayor que antes?
- Desde el final de X se busca un caracter C, y se pone en el lugar C ¿qué valor debe tener C para que luego del proceso X sea menos ordenado que antes?
- El caracter nro C de X se pone en la posición C+C ¿qué valor debe tener C para que luego del proceso, la potenciación de los caracteres de X sea mayor que antes?

Procesos que sólo agregan caracteres:
- A X se le agrega C en la posición C ¿qué valor debe tener C para que luego del proceso X sea divisible entre C?
- El caracter C de X se agrega en su posición C ¿qué valor debe tener C para que luego del proceso X sea la suma de los caracteres del X original?
- X se agrega al final de X, C veces ¿qué valor de C logra que luego del proceso X sea lo más cercano posible a C*X (el original)?

Procesos matemáticos (que pueden hacer cambios de los otros tipos):
- X=X/C ¿qué valor debe tener C como mínimo para que luego del proceso se cumpla que C>X?
- X=X*C ¿qué valor debe tener C para que los caracteres del nuevo X sean todos iguales?
- X=C/X ¿qué valor debe tener C para que el nuevo X tenga C decimales?

Los procesos que impliquen más de un tipo de proceso, son más complejos que los simples, claro. Parece haber 2 aspectos aquí: El proceso y la condición a cumplir. ¿Se pueden separar? ¿se puede complicar el proceso sin complicar la condición? ¿y viceversa? Creo que me desvié, me suele pasar xP Ahora me siento algo perdido ¿sugerencias?

A ver, el código:
Código:
X = Un número entero positivo
C = 1
Repetir
   Si C > X
      // Solución hallada, fin
   sino
      C++

Supongamos que la mínima complicación que puede hacerse a eso, del tipo de complicación que mencioné, es:
Código:
X = Un número entero positivo
C = 1
Repetir
   Si C+C > X
      // Solución hallada, fin
   sino
      C++

Ahí el proceso está en la condición, pero puede ser algo anterior ¿o no?
Código:
BaseX = Un número entero positivo
C = 1
Repetir
   // Proceso que implica definir X usando BaseX y C.
   Si C > X
      // Solución hallada, fin
   sino
      C++

Supongo que me falta práctica, pero quiero practicar desde lo más sencillo a lo más complicado, así que necesito entender cual es el orden...

La condición puede ser X > BaseX por ejemplo. O SimetriaDeX > SimetriaDeBaseX. No son variables nuevas realmente, son propiedades de las otras. En fin ¿sugerencias? Se me acabaron los puntos para GPT hoy, mañana le pregunto.
Páginas: 1 ... 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 30 31 32 33 ... 240
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines