#
# -*- coding: KOI8-R -*-
# Python 2.3

# Стандартные модули:

import os
import locale
import copy


# Локализация:

codText = 'KOI8-R'	# Кодировка исходного текста программы
codCon	= locale.getdefaultlocale()[1]	# Кодировка консоли
if os.name=='nt': codCon = 'CP866'

def s_(str):	# Перекодирует строку из кодировки текста в кодировку консоли
	return str.encode(codCon)

def s_in(str): # Перекодирует стандартный ввод в UNICODE
	return unicode(str, codCon)


# Глобальные объекты:

tree = [u'Он большой', [u'кит', False, False], [u'кот', False, False]]


# Функции:

yesno = lambda: s_in(raw_input(s_(u'(д/н) > '))) == u'д'


# Программа:

while True:
	raw_input(s_(u'\nЗагадайте животное и нажмите [Ввод].'))
	
	curnode = tree
	
	while True:
		if curnode[1] <> False:
			print s_(curnode[0]),'? ',
			
			curnode = curnode[1+int(not yesno())]
		else:
			print s_(u'Это '+curnode[0]),'? ',
			
			if yesno(): break
			
			for i, v in enumerate([s_in(raw_input(s_(u'Чем он(она/оно) отличается от '+curnode[0]+'? > '))),
					[s_in(raw_input(s_(u'Как его называют? > '))), False, False],
					copy.copy(curnode)]):
				curnode[i] = v
			
			break
