# Модуль 4
import random

"""
        Год рождения Жана Антуана Ватто - 10.10.1684
        Год рождения Джузеппе Верди - 10.10.1813
        Год рождения Алексея Константиновича Толстого - 05.09.1817
        Год рождения Фритьоф Нансена - 10.10.1861
        Год рождения Владимира Обручева - 28.09.1863
        Год рождения Шарлотты Купер - 22.09.1870
        Год рождения Людвига Мизеса - 29.09.1881
        Год рождения Альберто Джакометти - 10.10.1901
        Год рождения Ванды Якубовской - 10.10.1907
        Год рождения Бруно Фрейндлиха - 10.10.1909
"""

print('Викторина - угадай год рождения знаменитых людей')
print('------------------------------------------------')
print('Правила:')
print('Вам будет предложено ответить на 10 вопросов.')
print('Чем больше правильных ответов, тем лучше :)))')
print('В конце викторины, вы можете запустить ее вновь.')
print('Удачи!!!\n')

question = 'Введите дату рождения '

celebrities = {'Жана Антуана Ватто': '10.10.1684',
               'Джузеппе Верди': '10.10.1813',
               'Алексея Константиновича Толстого': '05.09.1817',
               'Фритьоф Нансена': '10.10.1861',
               'Владимира Обручева': '28.09.1863',
               'Шарлотты Купер': '22.09.1870',
               'Людвига Мизеса': '29.09.1881',
               'Альберто Джакометти': '10.10.1901',
               'Ванды Якубовской': '10.10.1907',
               'Бруно Фрейндлиха': '10.10.1909'}
day_name = {'01': 'Первое',
            '02': 'Второе',
            '03': 'Третье',
            '04': 'Четвертое',
            '05': 'Пятое',
            '06': 'Шестое',
            '07': 'Седьмое',
            '08': 'Восьмое',
            '09': 'Девятое',
            '10': 'Десятое',
            '11': 'Одиннадцатое',
            '12': 'Двенадцатое',
            '13': 'Тринадцатое',
            '14': 'Четырнадцатое',
            '15': 'Пятнадцатое',
            '16': 'Шестнадцатое',
            '17': 'Семнадцатое',
            '18': 'Восемнадцатое',
            '19': 'Девятнадцатое',
            '20': 'Двадцатое',
            '21': 'Двадцать первое',
            '22': 'Двадцать второе',
            '23': 'Двадцать третье',
            '24': 'Двадцать четвертое',
            '25': 'Двадцать пятое',
            '26': 'Двадцать шестое',
            '27': 'Двадцать седьмое',
            '28': 'Двадцать восьмое',
            '29': 'Двадцать девятое',
            '30': 'Тридцатое',
            '31': 'Тридцать первое'}
month_name = {'01': 'января',
              '02': 'февраля',
              '03': 'марта',
              '04': 'апреля',
              '05': 'мая',
              '06': 'июня',
              '07': 'июля',
              '08': 'августа',
              '09': 'сентября',
              '10': 'октября',
              '11': 'ноября',
              '12': 'декабря'}
again = 1
q_ty = len(celebrities)
while again:
    correct_answers = 0
    incorrect_answers = 0
    random_celebrities = random.sample(celebrities.keys(), 5)
    print(random_celebrities)
    for person in random_celebrities:
        answer = input(question + person + 'в формате dd.mm.yyyy: ')
        if answer == celebrities.get(person):
            correct_answers += 1
            print('Верно!')
        else:
            incorrect_answers += 1
            birthday = celebrities.get(person).split('.')
            birthday_in_text = day_name[birthday[0]] + ' ' + month_name[birthday[1]] + ' ' + birthday[2] + ' года'
            print(f'Не верно! Правильная дата рождения {person} = {birthday_in_text}')
    print()
    print(f'Количество правильных ответов: {correct_answers}')
    print(f'Количество неправильных ответов: {incorrect_answers}')
    print(f'Процент правильных ответов: {correct_answers*100/q_ty}')
    print(f'Процент неправильных ответов: {round(100*(1 - correct_answers/q_ty), 1)}\n')
    again = input('Хотите запустить викторину снова - Да/Нет?: ').lower()
    if again == 'да':
        again = 1
        print('Продолжаем...\n')
    elif again == 'нет':
        again = 0
        print('Викторина закончена, спасибо за ваши ответы!')
    else:
        print('Викторина закончена, т.к. вы ввели не понятное значение')
        break
