@fuckingfamouscoder

Как исправить мой код BlackJack на Python?

код

@bot.message_handler(content_types=['text']) # Ответ бота на текстовые команды
def send_text(message): # Функция отправки текста в ТГ
    if message.text == "Играть":
        def ochko(message):
            koloda = [6,7,8,9,10,2,3,4,11] * 4
            import random
            random.shuffle(koloda)
            bul = True
            count = 0
            dealercount = 0
            newcard = koloda.pop()
            startuser = koloda.pop() + koloda.pop()
            startdealer = koloda.pop()
            count += startuser
            dealercount += startdealer
            
            print(startdealer)
            print(startuser)   
            def ochkoplay(message, count, dealercount):
                while bul:
                    if message.text == "Добрать":
                        newcard = koloda.pop()
                        count+=newcard
                        dealercount += koloda.pop()
                        print(count)
                        if count > 21:
                            bot.send_message(message.chat.id, "Вы вытянули карту с номиналом " + str(newcard) + "\nВаш счёт - %a\nПеребор - вы проиграли" %(count), parse_mode='HTML', reply_markup=kb21)
                            break
                        elif count == 21:
                            bot.send_message(message.chat.id, "Эйс, 21!\nВы выиграли!\nСчёт дилера - %a" %(dealercount), parse_mode='HTML', reply_markup=kb21)
                            break
                        else:
                            bot.send_message(message.chat.id, "Вы вытянули карту с номиналом " + str(newcard) + "\nВаш счёт - %a" %(count), parse_mode='HTML', reply_markup=kb21)
                    if message.text == "Вскрыться":
                        print(" ")
                    
            sent = bot.send_message(message.chat.id, "Ваш cчёт: %a\nСчёт дилера: %a" %(count, dealercount), parse_mode='HTML', reply_markup=kb21)
            bot.register_next_step_handler(sent, ochkoplay) 
        ochko(message, count, dealercount)


Когда запускаю, пишет что def ochko не найдёт переменные которые она должна взять, но они указаны ровно выше. Если вставить ochko(message) без "count" и "dealer", то функция игры перестаёт работать, при нажатии на кнопку "Добрать" оно не найдёт переменную count. Как исправить код, чтобы вышла нормальная игра? Логика понятна, кнопку "Вскрыться" ещё не дописал, с циклом тоже проблемки какие-то:(
  • Вопрос задан
  • 204 просмотра
Решения вопроса 1
@twistfire92
Python backend developer
bot.register_next_step_handler(sent, ochkoplay)

ochkoplay - функция, ожидающая параметры на вход
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы