Пишу болта для телеграмм канал, нужно добавить все мини-игры(орел и решка, и кубик)
Все делаю через машину состояний, и эти две игру начинают у меня "конфликтовать"
Например
Я нажимаю на кнопку "Кубик", дальше он просит внести ставку и пишет выбрать число от 1 до 6, после того как пользователь напишет свое число, бот должен написать 'Победа' или же 'Проигрыш'(в зависимости от того угадал пользователь или нет)
Но все идет по- другому после того как пользователь выбирает число, бот пишет, что его ставка принята и просит выбрать сторону(он берет это из игры орел и решка)
Как это исправить?
class FSMstavka(StatesGroup):
cash = State()
random_num = State()
number = State()
ston = State()
srav = State()
@dp.callback_query_handler(text = 'or',state=None)
async def stavka(callback: types.CallbackQuery):
await FSMstavka.cash.set()
await callback.message.answer(f'Введи сумму ставки!(Минимальная ставка - 1р. Максимальная - 10р.)')
await callback.answer()
@dp.message_handler(content_types=['text'],state=FSMstavka.cash)
async def cash(message: types.Message, state: FSMstavka):
async with state.proxy() as data:
data['cash'] = int(message.text)
с = data['cash']
if с >= 1 and с <= 10:
await message.answer(f'Твоя ставка {с}! Теперь выбери сторону')
await FSMstavka.next()
else:
await message.answer('Такую сумму поставить нельзя! Сделай ставку снова')
@dp.message_handler(state=FSMstavka.random_num)
async def random_nun(message: types.Message, state: FSMstavka):
async with state.proxy() as data:
c = data['cash']
myseq = ['Орел', 'Решка']
choice(myseq)
#с = random.randint(0,1)
await FSMstavka.next()
if message.text == choice(myseq):
c = c * 2
await message.answer(f'Победа,твой выигрыш {c}')
else:
await message.answer('Проигрыш')
await state.finish()
class FSMkub(StatesGroup):
money = State()
random_number = State()
@dp.callback_query_handler(text = 'k',state=None)
async def stav(callback: types.CallbackQuery):
await FSMkub.money.set()
await callback.message.answer(f'Введи сумму ставки!')
await callback.answer()
@dp.message_handler(content_types=['text'],state=FSMkub.money)
async def money(message: types.Message, state: FSMkub):
async with state.proxy() as data:
data['money'] = int(message.text)
s = data['money']
if s > 0:
await message.answer(f'Твоя ставка {s}! Теперь выбери число')
await FSMstavka.next()
else:
await message.answer('Такую сумму поставить нельзя! Сделай ставку снова')
@dp.message_handler(state=FSMkub.random_number)
async def random_nun(message: types.Message, state: FSMkub):
async with state.proxy() as data:
s = data['money']
ku = random.randint(0,5)
await FSMstavka.next()
if int(message.text) == ku:
s = s * 6
await message.answer(f'Победа,твой выигрыш{s}')
else:
await message.answer('Проигрыш')
await state.finish()