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(); }