El resultado por ahora es este:
Código:
Escena 1
actions for fotograma 1
// SitIni.
Base.S = 5;
// Guardar SitIni.
SitID = "S"+Base.S;
Depth = 1;
attachMovie("Circ", SitID, Depth);
set (SitID+".S", Base.S);
set (SitID+".C", "Ninguno");
// Cand normal.
C = -1;
// Vars de Unsolved sits.
U = 0;
Us = 0;
actions for fotograma 2
// Reset Sit. Aplic.
S = Base.S+C;
// ¿Sol?
if (10<S) {
// Sol; begin to show list
List = C;
gotoAndPlay (4);
// Sino ¿la sit está anotada?
} else if (eval("S"+S+".S") == null) {
// No. Anotarla.
SitID = "S"+S;
Depth = Depth+1;
attachMovie("Circ", SitID, Depth);
set (SitID+".S", Base.S);
set (SitID+".C", C);
Us = Us+1;
SitID = "U"+Us;
Depth = Depth+1;
attachMovie("Circ", SitID, Depth);
set (SitID+".S", S);
}
actions for fotograma 3
// ¿Candmod is pos?
if (C<1) {
// Candmod.
C = C+2;
// Reset sit, then Aplic.
gotoAndPlay (2);
} else {
// ¿Hay UnsSit?
if (U<Us) {
// Hay, usarla.
Base.S = eval("U"+U+".S");
// Reset sit, then Aplic.
gotoAndPlay (2);
} else {
// No se logró Sol.
List = "No se halló Sol";
stop ();
}
}
actions for fotograma 4
List = C+" "+List;
actions for fotograma 6
SitID = "S"+S+".S";
if (eval(SitID) != "Ninguno") {
List = eval(SitID)+" "+List;
gotoAndPlay (5);
} else {
stop ();
}
El fotograma 5 está vacío.actions for fotograma 1
// SitIni.
Base.S = 5;
// Guardar SitIni.
SitID = "S"+Base.S;
Depth = 1;
attachMovie("Circ", SitID, Depth);
set (SitID+".S", Base.S);
set (SitID+".C", "Ninguno");
// Cand normal.
C = -1;
// Vars de Unsolved sits.
U = 0;
Us = 0;
actions for fotograma 2
// Reset Sit. Aplic.
S = Base.S+C;
// ¿Sol?
if (10<S) {
// Sol; begin to show list
List = C;
gotoAndPlay (4);
// Sino ¿la sit está anotada?
} else if (eval("S"+S+".S") == null) {
// No. Anotarla.
SitID = "S"+S;
Depth = Depth+1;
attachMovie("Circ", SitID, Depth);
set (SitID+".S", Base.S);
set (SitID+".C", C);
Us = Us+1;
SitID = "U"+Us;
Depth = Depth+1;
attachMovie("Circ", SitID, Depth);
set (SitID+".S", S);
}
actions for fotograma 3
// ¿Candmod is pos?
if (C<1) {
// Candmod.
C = C+2;
// Reset sit, then Aplic.
gotoAndPlay (2);
} else {
// ¿Hay UnsSit?
if (U<Us) {
// Hay, usarla.
Base.S = eval("U"+U+".S");
// Reset sit, then Aplic.
gotoAndPlay (2);
} else {
// No se logró Sol.
List = "No se halló Sol";
stop ();
}
}
actions for fotograma 4
List = C+" "+List;
actions for fotograma 6
SitID = "S"+S+".S";
if (eval(SitID) != "Ninguno") {
List = eval(SitID)+" "+List;
gotoAndPlay (5);
} else {
stop ();
}
El objetivo es que varíe un candidato (C) y a la situación inicial, analizando si se cumple una condición (Solcond).
Si la cumple debe mostrar las situaciones anteriores y qué acción (aplicación, uso, de C) se realizó en cada una. Quizá es fuerza bruta con backtracking.
Bueno, no sé qué errores tiene. Debería mostrar "1 1 1 1 1 1" al final pero me muestra "List" que es el valor inicial de la variable list, entonces es como si no hubiera actuado.
Al ver las variables en medio del programa me salió:
Citar
Level #0:
Variable _level0.$version = "WIN 5,0,32,0"
Variable _level0.List = "List"
Variable _level0.SitID = "U436"
Variable _level0.Depth = 873
Variable _level0.C = 1
Variable _level0.U = 0
Variable _level0.Us = 436
Variable _level0.S = 1
Movie Clip: Target="_level0.Base"
Variable _level0.Base.S = undefined
Errores a patadas.Variable _level0.$version = "WIN 5,0,32,0"
Variable _level0.List = "List"
Variable _level0.SitID = "U436"
Variable _level0.Depth = 873
Variable _level0.C = 1
Variable _level0.U = 0
Variable _level0.Us = 436
Variable _level0.S = 1
Movie Clip: Target="_level0.Base"
Variable _level0.Base.S = undefined
U no debería ser 0. Si lo es significa que nunca analizó una situación a la que llegó (o que debería llegar).
En cuanto a Base.S, m... El tema es que se necesita guardar la situación, y la situación en que se produjo. Hay un objeto llamado Base, que en la versión anterior guardaba variables, pero ahora no sé bien qué se debería hacer. De hecho, las últimas cosas que hice no sé por qué las hice.
¿Soluciones, ideas? Gracias.