Programa que genere una comparación incompleta, a veces pista/s, y que intente completarla.

(1/1)

Tachikomaia:
Este tema lo edité porque en principio decidí intentar algo más simple.

De momento tengo esto:
Código
// 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
  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();
     }

Navegación

[0] Índice de Mensajes