Приветствую,
написал бот-казино, вроде все работает, но что-то мне подсказывает, что слишком большой код для маленького функционала.
Буду очень признателен за комментарии из серии "для тупых".
собственно сам код:
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)