@Badmajor

Я тут на быдлокодил, можно ли оптимизировать?

Приветствую,
написал бот-казино, вроде все работает, но что-то мне подсказывает, что слишком большой код для маленького функционала.
Буду очень признателен за комментарии из серии "для тупых".

собственно сам код:
import telebot
from random import randint

bot = telebot.TeleBot('token')


@bot.message_handler(content_types=['text'])
def handle_text(message):
    if message.text in ['казино', 'Казино']:
        with open('pot.txt') as pot:
            bank = int(pot.read())
        if bank == 0:
            bot.reply_to(message, 'У тебя ноль на балансе, ты не сможешь больше играть')
            return False
        else:
            bet = bot.reply_to(message, 'Сколько ставишь?')
            bot.register_next_step_handler(bet, get_bet)


def new_game(message):
    if message.text in ['да', 'ДА', 'Да']:
        answer = bot.reply_to(message, 'Сколько ставишь?')
        bot.register_next_step_handler(answer, get_bet)
    else:
        bot.reply_to(message, 'Спасибо за игру, приходите к нам снова!')


def get_bet(message):
    bet = int(message.text)
    with open('pot.txt') as pot:
        bank = int(pot.read())
        a = randint(1, 100)
        if bank < bet:
            error = bot.reply_to(message, 'Ты не можешь ставить больше того что у тебя есть! \nТвой банк: ' + str(bank) + '\nВведи другую ставку!')
            bot.register_next_step_handler(error, get_bet)
            # continue
            return message.text
        else:
            if a > 50:
                bank += bet
                result = 'Выпало ' + str(a) + ', ты выиграл ' + str(bet) + ' мои поздравления!\nБанк ' + str(bank)
                bot.reply_to(message, result)
            else:
                bank -= bet
                result = 'Выпало ' + str(a) + ', ты потерял ' + str(bet) + ' попробуй еще\nБанк ' + str(bank)
                bot.reply_to(message, result)
        if int(bank) == 0:
            bot.reply_to(message, 'Ты остался без штанов, тебя выгнали')
            potw = open('pot.txt', 'w')
            potw.write(str(bank))
            potw.close()
            return False
        bot.reply_to(message, 'Сыграем еще? (да/нет):')


    bot.register_next_step_handler(message, new_game)

    potw = open('pot.txt', 'w')
    potw.write(str(bank))
    potw.close()



bot.polling(none_stop=True)
  • Вопрос задан
  • 176 просмотров
Решения вопроса 1
shabelski89
@shabelski89
engineer
Вот такое:
if message.text in ['казино', 'Казино']:

if message.text.lower() == "казино":


или такое

result = 'Выпало ' + str(a) + ', ты выиграл ' + str(bet) + ' мои поздравления!\nБанк ' + str(bank)
result = f'Выпало {a}, ты выиграл {bet} - мои поздравления!\nБанк {bank}'


ну и выше правильно написали, нечего тут "оптимизировать", кода пять строчек, логики тоже.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
Нечего тут "оптимизировать"
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы