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

Páginas: (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();
--
     }
--


Páginas: (1/1)