@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)
  • Вопрос задан
  • 343 просмотра
Решения вопроса 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 Куратор тега Python
Delphi Developer, сис. админ
Нечего тут "оптимизировать"
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект