Es muy difícil responder tu mensaje...
Ya te he indicado en más de una ocasión que tus 'problemas' suelen tener que ver frecuentemente con combinatoria y teoría de grafos. Haz el esfuerzo por aprender algo al respecto (sin quejarte de que no lo entiendes, solo inténtalo, si no lo entiendes a la primera sigue leyendo y leyendo, llega un momento que tu cabeza tiene suficientes piezas y sin darte cuenta montas el puzzle y acabas por comprender las cosas...)
Sinceramente si es muy largo o complicado prefiero hacer otra cosa.
Esto no puede llamarse IA, por varias razones...
Bueno, no sé, pero llega a aprender algo sin que yo se lo diga.
- Es lo suficientemente sencillo como para resolverlo mediante grafos y más eficientemente mediante autómatas.
¿Cómo es con grafos y autómatas?
- El juego acaba tras 8 intentos fallidos (un IA no puede 'aprender' con solo 8 jugadas).
Puse el título de Mastermind porque es muy parecido, pero no he puesto un límite a la cantidad de intentos.
- La IA se suele reservar para sistemas donde la complejidad se escapa humanamente al análisis, o bien aunque no escape, su resolución conlleve un tiempo (tambien) humanamente inaceptable.
Al parecer soy incapaz de resolver el problema por mí mismo.
- De entrada descarta usar unos y ceros (solo complicarás las cosas, sabiendo cuales son las reglas dle juego y que estas son finitas y de pequeño número), usa letras: siendo 8 bolas: ABCDEFGH
¿Por qué dices que complico si estoy simplificando? 2 valores es más sencillo que 8. En todo caso puedo usar letras en vez de números si te parece mejor.
- Como solo son 4 bolas la solución, el número de posibilidades para ordenar 4 bolas son: 1*2*3*4 = 24
Calculo que en mi caso serían 1*2.
- Tras la apuesta del jugador (en la primera de ellas), hay solo 14 resultados distintos.
es decir estos resultados son los nodos hijos del nodo raíz de un árbol.
En mi caso son 4:
0 posiciones correctas 0 posiciones equivocadas
01
10
20
11 no puede ser creo
Si no eres capaz de programar un esquema con árboles, ni con autómatas, me temo que tampoco serás capaz de crear una IA, que suele ser más complejo.
¿Entonces esto es un autómata?
actions for fotograma 1
// Situación inicial.
BaseVS = 10;
// Guardar Situación inicial.
SitID = "S"+BaseVS;
set (SitID+"VS", BaseVS);
set (SitID+"C", "Ninguno");
C = 1;
// Variables de Unsolved situaciones.
U = 0;
Us = 0;
actions for fotograma 2
// Reset Situación. Aplicación.
VS = BaseVS+C;
// ¿Sol?
if (20<VS) {
// Solución; iniciar mostrar lista.
List = C;
gotoAndPlay (4);
// Sino ¿la situación está anotada?
} else if (eval("S"+VS+"VS") == undefined) {
// No. Anotarla.
SitID = "S"+VS;
set (SitID+"VS", BaseVS);
set (SitID+"C", C);
Us = Us+1;
SitID = "U"+Us;
set (SitID+"VS", VS);
}
actions for fotograma 3
// La situación existe. ¿Modificar candidato es posible?
if (C<2) {
// Modificación de candidato.
C = C+1;
gotoAndPlay (2);
} else if (U<Us) {
// Usar Unsolveds.
U = U+1;
BaseVS = eval("U"+U+"VS");
C = 1;
gotoAndPlay (2);
} else {
// No hay Solución.
stop ();
}
actions for fotograma 5
SitID = eval("S"+BaseVS+"C");
BaseVS = eval("S"+BaseVS+"VS");
if (SitID != "Ninguno") {
List = SitID+" "+List;
gotoAndPlay (4);
} else {
stop ();
}
¿Cuales son los requisitos para que sea IA? Nota que en el título simplifiqué, en parte por no saber qué decir. ¿Lo que describí con números no lo es?
Al final has hablado bastante, gracias, pero no me ayudaste con la parte 1...
Yo a lo que he llegado por ahora es a:
Código___Árbol1___Árbol2___etc
________Tiempo que tarda el árbol en hallar el código.
Pero no sé cómo nombrar o crear a los árboles.