haz "conocimiento [ [ Tiene patas? ] gato [ [ Se arrastra? ] serpiente pez ] ] para reiniciar.conocimiento haz "conocimiento [ [ Tiene patas? ] gato [ [ Se arrastra? ] serpiente pez ] ] fin para animal escribe [Piensa en un animal. Intentaré adivinarlo haciéndote preguntas.] escribe [Presiona [Enter] cuando estés listo.] ignora leeLista escribe [Presiona [Enter] para salir.] escoge.rama :conocimiento escribe [] escribe [Intentemos nuevamente.] animal fin para ignora :x fin para extiende.conocimiento :nueva.pregunta :vieja.respuesta :si.respuesta :no.respuesta haz "conocimiento remplaza :conocimiento :vieja.respuesta (lista :nueva.pregunta :si.respuesta :no.respuesta) fin para aprende :erronea.respuesta local [correcta.respuesta pregunta respuesta] escribe [Caramba, Estaba equivocado. ¿Cuál es tu animal?] haz "correcta.respuesta ultimo leeLista escribe [Por favor, escribe una pregunta de "si o no"] escribe (frase [que distinga un] :correcta.respuesta [de un] :erronea.respuesta) haz "pregunta leeLista haz "respuesta pregunta.si.o.no (frase [¿La respuesta para tu pregunta es "si" o "no" para un] palabra :correcta.respuesta "?) sisino :respuesta = [si] ~ [extiende.conocimiento :pregunta :erronea.respuesta :correcta.respuesta :erronea.respuesta] ~ [extiende.conocimiento :pregunta :erronea.respuesta :erronea.respuesta :correcta.respuesta] fin para adivina :animal local [pregunta.final respuesta] haz "pregunta.final (frase [¿Es tu animal es un] palabra :animal "? ) haz "respuesta pregunta.si.o.no :pregunta.final sisino :respuesta = [si] ~ [escribe [¡Qué inteligente soy!]] ~ [aprende :animal] fin para si.rama :nodo devuelve primero menosPrimero :nodo fin para remplaza :arbol :nodo :reemplazo si :arbol = :nodo [devuelve :reemplazo] si palabra? :arbol [devuelve :arbol] devuelve (lista pregunta :arbol remplaza si.rama :arbol :nodo :reemplazo remplaza no.rama :arbol :nodo :reemplazo) fin para pregunta.si.o.no :pregunta escribe :pregunta local "entrada haz "entrada leeLista si :entrada = [] [escribe [Adios...] envia "toplevel] si :entrada = [si] [devuelve [si]] si :entrada = [no] [devuelve [no]] escribe [Por favor, escribe "si" o "no"] devuelve pregunta.si.o.no :pregunta fin para no.rama :nodo devuelve ultimo :nodo fin para escoge.rama :nodo local "respuesta si palabra? :nodo [adivina :nodo alto] haz "respuesta pregunta.si.o.no pregunta :nodo sisino :respuesta = [si] ~ [escoge.rama si.rama :nodo] ~ [escoge.rama no.rama :nodo] fin para pregunta :nodo devuelve primero :nodo fin escribe [] escribe [Programa ANIMAL cargado] escribe [Escribe "animal" para empezar.]