import random

# база вопросов в виде словарей
questions_main = {
    "Язык программирования (русским алфавитом)": "фортран",
    "Устройство вывода информации": "принтер",
    "Электронная схема, управляющая внешним устройством": "контроллер",
    "Разъемы подключения внешних устройств": "интерфейс"
}
questions_final = {
    "Тип пометки, используемый для быстрого нахождения пользователей и фотографии": "хэштег",
    " Процесс разметки компьютерного диска — разбиения его на логические части сектора, дорожки и их пометка": "форматирование",
    "дин из простейших логических элементов, который преобразует значение в другое ему противоположное": "инвертор",
    "Наука об общих свойствах процессов управления в живых и неживых системах": "кибернетика"
}

# приветственное слово ведущего
print("Добро пожаловать на игру Поле чудес.\n\
Вам предстоит ответить на вопрос и если повезет выиграть супер приз")
print("Внимание!\n")

# выбираем случайный вопрос
question_main = random.choice(list(questions_main.keys()))

# ответ на выбранный вопрос
answer_main = questions_main[question_main]

# создаем переменную для хранения списка звездочек
star_answer = []
for i in range(len(answer_main)):
    star_answer.append("*")

print("Вопрос:", question_main)
print(*star_answer)

# список возможных очков при вращении барабана
scores = [100, 200, 300, 400, 500, 0, "next", "Б"]

score1 = 0
score2 = 0
gameOver = False
player = 0
break_main = False  # значение изменится на True, если кто-то ошибся, называя слово целиком

while not gameOver:
    # Слова ведущего
    if player % 2 == 0:
        print("\nИграет Игрок-1")
    else:
        print("\nИграет Игрок-2")
    print("Готовы ли вы назвать слово целиком? Введите 'да' или нажмите любую клавишу")
    if input().lower() == "да":
        print("Назовите слово целиком")
        answer = input().lower()
        if answer == answer_main:
            print("Поздравляю, вы ответили правильно!")
            print("Ответ", answer_main)
            break
        else:
            print("К сожалению, вы ошиблись. Вы проиграли")
            if player % 2 == 0:
                print("Победил Игрок-2")
                print("Набранное количество очков", score2)
                break_main = True
            else:
                print("Победил Игрок-1")
                print("Набранное количество очков", score1)
                break_main = True
            break
    else:
        print("Вращайте барабан")
        play_score = random.choice(scores)
        if play_score == "next":
            print("Ход переходит к другому игроку")
            player += 1
            continue
        elif play_score == "Б":
            print("У вас банкрот. Очки сгорают, а ход переходит к другому игроку")
            if player % 2 == 0:
                score1 = 0
                player += 1
                continue
            else:
                score2 = 0
                player += 1
                continue
        else:
            print("Вы заработали", play_score, "очков")
            if player % 2 == 0:
                score1 += play_score
            else:
                score2 += play_score
            print("Назовите букву")
            letter = input()
            nxt_plr = False
            for i in range(len(star_answer)):
                if letter == answer_main[i]:
                    nxt_plr = True

                    star_answer[i] = letter
            if nxt_plr == True:
                print("Вы отгадали. Откройте пожалуйста такие буквы в слове")
                print(*star_answer)
            else:
                player += 1
                print(*star_answer)

win_score = 0
if break_main == False:  # если никто не ошибся, называя слово целиком
    if player % 2 == 0 and break_main == False:
        print("Победил Игрок-1")
        print("Набранное количество очков", score1)
        win_score = score1
    else:
        print("Победил Игрок-2")
        print("Набранное количество очков", score2)
        win_score = score2

# список возможных подарков
gifts = {100: "блокнот", 200: "общая тетрадь", 300: "калькулятор", 500: "Флешка", 1000: "mp3-плеер"}

# отсортированный список ключей словаря
gifts_keys = sorted(list(gifts.keys()))
my_gifts = []
if win_score == 0:
    print("У вас ноль очков. Увы, вы без подарков")
else:
    for i in range(len(gifts_keys)):
        if gifts_keys[i] <= win_score: print(i + 1, ") ", gifts_keys[i], " - ", gifts[gifts_keys[i]])
    print("Выбирайте призы на заработанные очки. Введите номер приза и нажмите клавишу Enter")
    # список выбранных подарков
    my_gifts = []
    while win_score > 0:
        num = int(input())
        print("Вы добавили себе в корзину", gifts[gifts_keys[num - 1]])
        my_gifts.append(gifts[gifts_keys[num - 1]])
        win_score -= gifts_keys[num - 1]
        for i in range(len(gifts_keys)):
            if gifts_keys[i] <= win_score:
                print(i + 1, ") ", gifts_keys[i], " - ", gifts[gifts_keys[i]])

    else:
        print("У вас закончились очки")
        print("\nВот, что вы выиграли:", *my_gifts)

# супер игра
print("Готовы ли вы рискнуть всем и сыграть со мной в супер игру? Да или нет?")
super_yes_no = input()
if super_yes_no.lower() == "да":
    print("Вы согласились сыграть в Супер игру и получить супер приз")
    # выбираем случайный вопрос из списка финальных вопросов
    question_final = random.choice(list(questions_final.keys()))
    print("Финальный вопрос: ", question_final)
    answer_final = questions_final[question_final]
    star_answer = []
    for i in answer_final:
        star_answer.append("*")
    print(*star_answer)
    print("Вы можете открыть в этом слове букв - ", len(star_answer) // 2 + 1)
    for i in range(len(star_answer) // 2 + 1):
        letter = input()
        for j in range(len(star_answer)):
            if answer_final[j] == letter:
                star_answer[i] = letter
    print(*star_answer)
    print("Итак, ваше слово")
    # вводим слово целиком
    word = input()
    if word == answer_final:
        print("Вы супер-человек, вы гений, вы победитель супер игры и супер-приз ваш.\n И все подарки ваши")
    else:
        print("Увы, но вы все проиграли. Но вы пытались и это достойно уважения!")
else:
    print("Поздравляю вас с победой. Но вы не абсолютный чемпион!")
    if len(my_gifts) == 0:
        print("Вы ничего не забираете домой")
    else:
        print("Вы ничего забираете домой:", *my_gifts)

print("Спасибо за участие в игре. Увидимся")
