C.9. Adivina el animal Python

   1: def animal():
   2:  
   3: # empezar con un nodo suelto
   4: raiz = Arbol("pajaro")
   5: # bucle hasta que el usuario salga
   6: while 1:
   7: print
   8:  
   9:     if not si("Estas pensando en un animal? "): break
  10:         # recorrer el arbol
  11:         arbol = raiz
  12:         while arbol.tomaIzquierda() != None:
  13:         indicador = arbol.tomaCarga() + "? "
  14:     
  15:     if si(indicador):
  16:         arbol = arbol.tomaDerecha()
  17:     else:
  18:         arbol = arbol.tomaIzquierda()
  19:     
  20: # intentar adivinar
  21: adivina = arbol.tomaCarga()
  22: indicador = "Es un " + adivina + "? "
  23:  
  24:     if si(indicador):
  25:         print "^A<Soy el mas grande!"
  26:         continue
  27:  
  28: # obtener informacion nueva
  29: indicador = "Como se llama el animal? "
  30: animal = raw_input(indicador)
  31: indicador = "Que pregunta distinguir³a a un %s de un %s? "
  32: pregunta = raw_input(indicador % (animal,adivina))
  33:  
  34: # a~nadir informacion nueva al arbol
  35: arbol.ponCarga(pregunta)
  36: indicador = "Si el animal fuera un %s, cual ser³a la respuesta? "
  37:     if si(indicador % animal):
  38:         arbol.ponIzquierda(Arbol(adivina))
  39:     arbol.ponDerecha(Arbol(animal))
  40:     
  41:     else:
  42:         arbol.ponIzquierda(Arbol(animal))
  43:         arbol.ponDerecha(Arbol(adivina))
  44:     
  45:     def si(preg):
  46:         from string import lower
  47:         resp = lower(raw_input(preg))
  48:         return (resp[0:1] == 's')
0