Lo probé 3 veces, quizá es casualidad, sino algún error en el código ¿lo ven o qué explicación dan?
A elige al azar.
J se adapta, o sea, si ve que el nro 0 está apareciendo más que el 1, elige el 0, si el 1 aparece más elige el 1, y sino elige al azar.
Si A acierta se le da 1 punto, sino se le resta. Para J lo mismo.
También en cierta medida se tiene en cuenta el promedio de puntos a lo largo de la partida.
onClipEvent (load) {
PuntosCon0 = 0;
PuntosCon1 = 0;
PuntosDeJ = 0;
PromedioDeJ = 0;
ElegidoPorJ = random(2);
// trace ("J eligió: "+ElegidoPorJ);
PuntosDeA = 0;
PromedioDeA = 0;
}
onClipEvent (enterFrame) {
ElegidoPorA = random(2);
ElegidoPorAzar = random(2);
// trace ("Nuevo número: "+ElegidoPorAzar);
// Si el jugador acierta:
if (ElegidoPorAzar == ElegidoPorJ) {
// Actualizar datos:
PuntosDeJ++;
Resumen = "PuntosCon"+ElegidoPorJ;
set (Resumen, eval(Resumen)+1);
// trace ("J acertó. PuntosCon0: "+PuntosCon0+", PuntosCon1: "+PuntosCon1);
// No cambia su elección.
} else {
// Falló.
// Actualizar datos:
PuntosDeJ--;
Resumen = "PuntosCon"+ElegidoPorJ;
set (Resumen, eval(Resumen)-1);
// trace ("J falló. PuntosCon0: "+PuntosCon0+", PuntosCon1: "+PuntosCon1);
// Decidir nueva elección de J.
if (PuntosCon0 == PuntosCon1) {
ElegidoPorJ = random(2);
} else if (PuntosCon0>PuntosCon1) {
ElegidoPorJ = 0;
} else {
ElegidoPorJ = 1;
}
// trace ("J eligió: "+ElegidoPorJ);
}
// Si el aliado acierta:
if (ElegidoPorAzar == ElegidoPorA) {
// Actualizar datos:
PuntosDeA++;
} else {
PuntosDeA--;
}
trace (PuntosDeJ+", "+PuntosDeA);
PromedioDeJ = (PromedioDeJ+PuntosDeJ)/2;
PromedioDeA = (PromedioDeA+PuntosDeA)/2;
trace (PromedioDeJ+", "+PromedioDeA);
}