Ver Mensaje Individual
  #77 (permalink)  
Antiguo 27/07/2015, 18:55
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Proyecto de inteligencia artificial de codigo abierto

minimbreesmm:
Está muy interesante y hasta me resulta educativo lo que dices. Ten en cuenta la posibilidad de que requieras explicarle mucho más de lo que crees, o sea ¿quieres que averigüe lo que es "pon" o se lo vas a explicar? Explicarle cómo averiguar es complicado...
También te sugiero iniciar por cosas simples, por ejemplo hablaste de género y de invertir la estructura de una frase, pero está claro que en principio la estructura de los datos a ingresar podría ser una y sin género, por ejemplo:
Acción Objeto1 Objeto2
Entonces:
Pon Basura Bote
Descarga Megamente 00:30:00

Hace mucho cuando empecé con el tema "IA" iba por un rumbo similar al tuyo, em has dado ganas de avanzar por ese camino xD pero bueno sigo con el mío.

Por cierto el código que puse está mal, no me resulta sencillo explicar por qué y no tengo muchas ganas así que simplemente pondré lo que uso ahora. Además, esto compara varias variables, lo anterior sólo comparaba 2.

Crear variables a guardar en archivo (las As y Act) y crear archivo cuyo contenido sean dichas variables y su nombre esté basado en ellas.
Código MF5:
Ver original
  1. A1 = 1;
  2. A2 = 1;
  3. A3 = 1;
  4. A4 = 1;
  5. A5 = 1;
  6. Act = 1;
  7. M.Vars = 5;
  8. M.Z = 1;
  9. M.SaveID = A1;
  10. do {
  11.     M.Z = M.Z+1;
  12.     M.SaveID = M.SaveID+"_"+eval("A"+M.Z);
  13. } while (M.Z<M.Vars);
  14. M.SaveID = M.SaveID+".txt";
  15. fscommand ("save", M.SaveID);

En otro frame:
Crear, en otro objeto, las mismas variables pero con valores que se supone que no se guardarán en el archivo:
Código MF5:
Ver original
  1. // Proceso para verificar save.
  2. M.Cargas = 0;
  3. M.Z = 0;
  4. do {
  5.     M.Z = M.Z+1;
  6.     set ("M.A"+M.Z, -100);
  7. } while (M.Z<M.Vars);
  8. M.Act = -100;

Cargar las variables en el objeto:
Código MF5:
Ver original
  1. M.Comp = 0;
  2. M.Cargas = M.Cargas+1;
  3. loadVariables (M.SaveID, "M");

Chequear que las variables se hayan cargado como número, es decir, que los valores "imposibles" hayan sido sustituídos por los valores debidos:
Código MF5:
Ver original
  1. M.Comp = M.Comp+1;
  2. M.Verif = 1;
  3. M.Z = 0;
  4. do {
  5.     M.Z = M.Z+1;
  6.     M.AZ = Number(eval("M.A"+M.Z));
  7.     if (-10>M.AZ) {
  8.         M.Verif = 0;
  9.         M.Z = M.Vars;
  10.     }
  11. } while (M.Z<M.Vars);
  12. M.Act = Number(M.Act);
  13. if (-10>M.Act) {
  14.     M.Verif = 0;
  15. }
  16. if (M.Verif == 0) {
  17.     if (M.Comp == 10) {
  18.         if (M.Cargas == 3) {
  19.             fscommand ("save", "30 fallas en "+M.SaveID);
  20.             fscommand ("quit");
  21.         } else {
  22.             // reload (ir a cargar variables; fragmento anterior).
  23.         }
  24.     } else {
  25.         // retry (repetir este fragmento).
  26.     }
  27. }

agleiva respondo tu mensaje más tarde.