Autor Tema: Generar comparación incompleta, a veces pista/s, e intentar completarla.

0 Usuarios y 1 Visitante están viendo este tema.

11 Abril, 2024, 11:13 pm
Leído 541 veces

Tachikomaia

  • $$\Large \color{#5b61b3}\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 1,297
  • País: uy
  • Karma: +0/-0
  • Sexo: Masculino
Este tema lo edité porque en principio decidí intentar algo más simple.

De momento tengo esto:
Código: (actionscript) [Seleccionar]
// Generar comparación:
// Parte 1:
ParteVisible1 = random(3);
if (ParteVisible1 == 0) {
ParteVisible1 = "...";
} else {
Parte1 = random(10);
if (ParteVisible1 == 1) {
ParteVisible1 = Parte1;
} else {
ParteVisible1 = "Incógnita";
}
}
// Parte 2:
PosiblesSignos = ["==", "!=", "<=", ">=", "<", ">"];
ParteVisible2 = random(3);
if (ParteVisible2 == 0) {
ParteVisible2 = "...";
} else {
Parte2 = PosiblesSignos[random(6)];
if (ParteVisible2 == 2) {
ParteVisible2 = Parte2;
} else {
ParteVisible2 = "Incógnita";
}
}
// Parte 3:
ParteVisible3 = random(3);
if (ParteVisible3 == 0) {
ParteVisible3 = "...";
} else {
Parte3 = random(10);
if (ParteVisible3 == 1) {
ParteVisible3 = Parte3;
} else {
ParteVisible3 = "Incógnita";
}
}
Mensaje = ParteVisible1+" "+ParteVisible2+" "+ParteVisible3;

Ejemplo de salida:
5 Incógnita ...

Otro ejemplo:
Incógnita > 1

Cosas que me interesan:
- Debe haber al menos 1 "..."
- Debe poder haber más de un tipo de incógnita (X, Y y Z).
- La probabilidad de que haya 1 "..." debe ser igual a que haya 2 o 3. Pero el método debe poder usarse también si la comparación tuviese más partes.

Quisiera que me ayuden con el punto 3. Yo haré el 1 y 2, actualizo el tema cuando lo haga.

En cuanto a las pistas, más adelante veré, pero se refieren a la incógnita.

En cuanto a que complete la comparación (sustituya los ... por valores de modo que sea true), alguna idea tengo, ejemplo:
Código: (actionscript) [Seleccionar]
   actions for fotograma 1
      // Resolvedor de A A ..., todo dato.
      PosiblesValores = ["==", "!="];
      A = PosiblesValores[random(PosiblesValores.length)];
      // trace ("A: "+A);
      Parte1 = A;
      Parte2 = A;
      CandidatoNoTraducido = 0;
      Mensaje = Parte1+" "+Parte2+" ...";
      // Usada en IntentarResolver:
      function Comparacion () {
         if (Parte2 == "==") {
            return Parte1 == CandidatoTraducido;
         } else {
            return Parte1 != CandidatoTraducido;
         }
      }
      // Se repite en F2:
      function IntentarResolver () {
         CandidatoTraducido = PosiblesValores[CandidatoNoTraducido];
         trace ("Probando el Candidato "+CandidatoTraducido);
         if (Comparacion()) {
            trace ("Solución hallada, ver respuesta.");
            Mensaje = Mensaje+"\n"+Parte1+" "+Parte2+" "+CandidatoTraducido;
            gotoAndStop (3);
         } else if (CandidatoNoTraducido<1) {
            trace ("No se logró el objetivo, pero hay otro candidato que se probará");
            CandidatoNoTraducido = CandidatoNoTraducido+1;
         } else {
            trace ("No es posible modificar al candidato ni lograr el objetivo.");
            Mensaje = Mensaje+"Ninguna, no es posible lograr el objetivo.";
            // Finalizar programa:
            gotoAndStop (3);
         }
      }
   actions for fotograma 2
      stop ();
   actions for Vacío
      onClipEvent (enterFrame) {
         _level0.IntentarResolver();
      }