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


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Generar secuencias evitando redundancias, loops en que nada ocurra, etc.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Generar secuencias evitando redundancias, loops en que nada ocurra, etc.  (Leído 2,474 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.795


Hackentifiko!


Ver Perfil
Generar secuencias evitando redundancias, loops en que nada ocurra, etc.
« en: 27 Mayo 2026, 05:15 am »

Con 1 if:


Cada código está dentro de un while eterno.

Lo que está en la celda contigua a un if o del mismo color, verde, es lo que se hace en caso de que se cumpla la condiciòn.

Lo que está en celeste se hace siempre.

Las líneas vacías separan códigos, marcan que son independientes, sea hacia abajo o a la derecha.

Todos tienen 1ero Punch y luego Kick, la diferencia entre los de izquierda y derecha es qué cosa está en el if.

Con un do:


Las reglas son muy parecidas.

Me salteé uno arriba a la derecha porque es redundante, como:
Código:
Repetir
   Punch
por siempre
Kick
Nunca se usará Kick, no tiene sentido ponerlo, ni al repetir, porque como dije ya hay uno "invisible" (que por cuestiones prácticas no vale la pena poner, se entiende que está).

Al final pongo una copia de códigos anteriores, o sea con 1 if. Quiero saber de qué formas le puedo meter do whiles sin caer en redundancias ni que nada se pueda hacer. Siempre tiene que haber algo que se pueda realizar siempre. Por ejemplo si pongo:
Código:
Punch
Do
   Si HP is full
      Kick
por siempre
se usará Punch, y luego sólo se usará Kick si Hp is full, sino nada, eso no puede ser.

No sé uds pero yo como que me mareo pensando cómo meter los do en los códigos mostrados, no estoy queriendo lograr una secuencia específica sino crear una lista de las posibles que cumplan las condiciones...


En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.795


Hackentifiko!


Ver Perfil
Re: Generar secuencias evitando redundancias, loops en que nada ocurra, etc.
« Respuesta #1 en: 12 Junio 2026, 11:29 am »

Creo que tenía un tema más reciente que esto pero no lo hallé. Lo que pongo a continuación está relacionado, lo pongo por si sirve a alguien:




En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.795


Hackentifiko!


Ver Perfil
Re: Generar secuencias evitando redundancias, loops en que nada ocurra, etc.
« Respuesta #2 en: 17 Junio 2026, 21:51 pm »

Quiero que las genere un programa, pongo lo que se me ocurre, agreguen lo faltante o denme ideas.

Código
  1. Con ayuda de una IA logré esto:
  2. // Para códigos de 1 cosa (acción, if, do while o while):
  3. //
  4. // Las líneas se guardarán en elementos de arrays,
  5. // así que en este contexto línea y elemento son...
  6. // conceptos bastante equivalentes:
  7. NewCodes = 0;
  8. // Generar código agregando acción:
  9. set("Code"+NewCodes, new Array("1"));
  10. // Generar código agregando if:
  11. NewCodes++;
  12. set("Code"+NewCodes, new Array("if", "}"));
  13. // Generar código agregando do while:
  14. NewCodes++;
  15. set("Code"+NewCodes, new Array("do {", "} while"));
  16. // Generar código agregando while:
  17. NewCodes++;
  18. set("Code"+NewCodes, new Array("while {", "}"));
  19. //
  20. // Mostrar los códigos:
  21. CodeaMostrar = 0;
  22. do {
  23.   Resumen = "Code"+CodeaMostrar;
  24.   trace(Resumen+":");
  25.   trace(eval(Resumen));
  26.   CodeaMostrar++;
  27. } while (CodeaMostrar <= NewCodes);

Salida:
Code0:
1
Code1:
if,}
Code2:
do {,} while
Code3:
while {,}

Me interesa:
- Que a partir de esos se generen otros sin que haya repeticiones, y cuando haya if puede haber else. Como mostré en la imagen del post anterior.
- Que al mostrarse los códigos, en vez de mostrarse los elementos del array todos seguidos en uina misma línea, se mueste 1 por línea.
En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.795


Hackentifiko!


Ver Perfil
Re: Generar secuencias evitando redundancias, loops en que nada ocurra, etc.
« Respuesta #3 en: 17 Julio 2026, 15:42 pm »

No hay mucha respuesta  :(

Frame 1:
Código
  1. // Para códigos de 1 cosa (acción, if, do while o while):
  2. //
  3. // Las líneas se guardarán en elementos de arrays,
  4. // así que en este contexto nro de línea y de elemento...
  5. // son lo mismo:
  6. CodesLV1 = 0;
  7. // Generar código agregando acción:
  8. set ("LV1Code"+CodesLV1, new Array("1"));
  9. // Generar código agregando if:
  10. CodesLV1++;
  11. set ("LV1Code"+CodesLV1, new Array("if", "}"));
  12. // Generar código agregando do while:
  13. CodesLV1++;
  14. set ("LV1Code"+CodesLV1, new Array("do {", "} while"));
  15. // Generar código agregando while:
  16. CodesLV1++;
  17. set ("LV1Code"+CodesLV1, new Array("while {", "}"));
  18. //
  19. // Mostrar los códigos:
  20. CodeaMostrar = 0;
  21. do {
  22. NombredeNewCode = "LV1Code"+CodeaMostrar;
  23. trace (NombredeNewCode);
  24. TextoLineaPorLinea = eval(NombredeNewCode).join("\n");
  25. trace (TextoLineaPorLinea+"\n");
  26. CodeaMostrar++;
  27. } while (CodeaMostrar<=CodesLV1);

Salida:
Citar
LV1Code0
1

LV1Code1
if
}

LV1Code2
do {
} while

LV1Code3
while {
}

Está bien.

Frame 2:
Código
  1. // Para códigos de 2 cosas:
  2. CodesLV2 = -1;
  3. CodeBase = -1;
  4. do {
  5. CodeBase++;
  6. LineaDondeAgregar = -1;
  7. do {
  8. CodesLV2++;
  9. NombredeNewCode = "LV2Code"+CodesLV2;
  10. LineaDondeAgregar++;
  11. // Para generar código agregando acción, 1ero se copia a otro:
  12. set (NombredeNewCode, eval("LV1Code"+CodeBase).slice());
  13. // Insertar en la posición LineaDondeAgregar
  14. // Parámetros: (índice, elementos_a_eliminar, nuevo_elemento)
  15. eval(NombredeNewCode).splice(LineaDondeAgregar, 0, "2");
  16. trace (NombredeNewCode);
  17. TextoLineaPorLinea = eval(NombredeNewCode).join("\n");
  18. trace (TextoLineaPorLinea+"\n");
  19. } while (LineaDondeAgregar<eval("LV1Code"+CodeBase).length);
  20. } while (CodeBase < CodesLV1);
  21. stop ();

Salida:
Citar
LV2Code0
2
1

LV2Code1
1
2

LV2Code2
2
if
}

LV2Code3
if
2
}

LV2Code4
if
}
2

LV2Code5
2
do {
} while

LV2Code6
do {
2
} while

LV2Code7
do {
} while
2

LV2Code8
2
while {
}

LV2Code9
while {
2
}

LV2Code10
while {
}
2

Cosas que deben corregirse o agregarse:
- No debe haber "2" si antes no hay "1".
- Lo que esté dentro de un if o loop, debe tener 3 espacios.
- Sólo se está agregando "2", se debe también agregar if, etc, y else en caso de haber if.

¿Bien? ¿alguien lo hace? ¿alguna duda? ¿alguna optimización que se les ocurra, o mejores nombres?
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Evitando Olly al cargar « 1 2 3 »
Ingeniería Inversa
x64core 25 12,783 Último mensaje 14 Mayo 2012, 18:40 pm
por alhevar
Duda con LOOPS
Programación C/C++
pablovg9 5 3,007 Último mensaje 1 Agosto 2015, 23:08 pm
por pablovg9
Evitando el apocalipsis zombi (de los servidores)
Noticias
wolfbcn 0 1,900 Último mensaje 15 Junio 2016, 02:25 am
por wolfbcn
Generar lista evitando ", " al inicio sin repetir code.
Programación General
Tachikomaia 9 10,694 Último mensaje 27 Noviembre 2023, 04:33 am
por Tachikomaia
Muchos loops, ayuda.
Programación General
Tachikomaia 0 2,360 Último mensaje 19 Agosto 2024, 07:10 am
por Tachikomaia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines