Добро пожаловать на мой новый видеоурок на YouTube, где я покажу вам, как создать свое собственное казино в Telegram с помощью Telegram Bot API. В этом уроке вы найдете все необходимое для запуска и управления своим собственным онлайн-казино в Telegram.
Я проведу вас через каждый шаг процесса создания казино с использованием Telegram Bot API. Мы начнем с создания бота и его настройки, а затем рассмотрим различный функционал aiogram.
Вы узнаете, как реализовать своего «однорукого бандита» с помощью dice в телеграм.
Исходный код к уроку
get_dice_result.py
def get_row(result_dice: int):
slot_values = {
1: ("бар", "бар", "бар"),
2: ("виноград", "бар", "бар"),
3: ("лимон", "бар", "бар"),
4: ("семёрка", "бар", "бар"),
5: ("бар", "виноград", "бар"),
6: ("виноград", "виноград", "бар"),
7: ("лимон", "виноград", "бар"),
8: ("семёрка", "виноград", "бар"),
9: ("бар", "лимон", "бар"),
10: ("виноград", "лимон", "бар"),
11: ("лимон", "лимон", "бар"),
12: ("семёрка", "лимон", "бар"),
13: ("бар", "семёрка", "бар"),
14: ("виноград", "семёрка", "бар"),
15: ("лимон", "семёрка", "бар"),
16: ("семёрка", "семёрка", "бар"),
17: ("бар", "бар", "виноград"),
18: ("виноград", "бар", "виноград"),
19: ("лимон", "бар", "виноград"),
20: ("семёрка", "бар", "виноград"),
21: ("бар", "виноград", "виноград"),
22: ("виноград", "виноград", "виноград"),
23: ("лимон", "виноград", "виноград"),
24: ("семёрка", "виноград", "виноград"),
25: ("бар", "лимон", "виноград"),
26: ("виноград", "лимон", "виноград"),
27: ("лимон", "лимон", "виноград"),
28: ("семёрка", "лимон", "виноград"),
29: ("бар", "семёрка", "виноград"),
30: ("виноград", "семёрка", "виноград"),
31: ("лимон", "семёрка", "виноград"),
32: ("семёрка", "семёрка", "виноград"),
33: ("бар", "бар", "лимон"),
34: ("виноград", "бар", "лимон"),
35: ("лимон", "бар", "лимон"),
36: ("семёрка", "бар", "лимон"),
37: ("бар", "виноград", "лимон"),
38: ("виноград", "виноград", "лимон"),
39: ("лимон", "виноград", "лимон"),
40: ("семёрка", "виноград", "лимон"),
41: ("бар", "лимон", "лимон"),
42: ("виноград", "лимон", "лимон"),
43: ("лимон", "лимон", "лимон"),
44: ("семёрка", "лимон", "лимон"),
45: ("бар", "семёрка", "лимон"),
46: ("виноград", "семёрка", "лимон"),
47: ("лимон", "семёрка", "лимон"),
48: ("семёрка", "семёрка", "лимон"),
49: ("бар", "бар", "семёрка"),
50: ("виноград", "бар", "семёрка"),
51: ("лимон", "бар", "семёрка"),
52: ("семёрка", "бар", "семёрка"),
53: ("бар", "виноград", "семёрка"),
54: ("виноград", "виноград", "семёрка"),
55: ("лимон", "виноград", "семёрка"),
56: ("семёрка", "виноград", "семёрка"),
57: ("бар", "лимон", "семёрка"),
58: ("виноград", "лимон", "семёрка"),
59: ("лимон", "лимон", "семёрка"),
60: ("семёрка", "лимон", "семёрка"),
61: ("бар", "семёрка", "семёрка"),
62: ("виноград", "семёрка", "семёрка"),
63: ("лимон", "семёрка", "семёрка"),
64: ("семёрка", "семёрка", "семёрка"),
}
return ', '.join(slot_values.get(result_dice)).capitalize()
def get_point(result_dice: int):
if result_dice in (1, 22, 43):
return 3
elif result_dice in (6, 11, 16, 17, 27, 32, 33, 38, 48, 49, 54, 59):
return 2
elif result_dice == 64:
return 5
else:
return -1
def get_result_text(result_dice: int, bid: int):
result = get_point(result_dice=result_dice)
point = bid * result
comb = get_row(result_dice=result_dice)
if result > 0:
text_for_gamer = f"Ваша комбинация:\r\n{comb}\r\nПоздравляем! Вы выиграли {point} очков"
else:
text_for_gamer = f'Ваша комбинация:\r\n{comb}\r\nВы проиграли... Попробуйте еще разок.'
return point, text_for_gamerfrom aiogram import Bot, Dispatcher, Router, F
from aiogram.types import Message
from aiogram.utils.keyboard import ReplyKeyboardBuilder
from aiogram.filters import CommandStart
import asyncio
from get_dice_result import get_result_text
BOT_TOKEN = '123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ'
router: Router = Router()
def get_keyboard():
keyboard = ReplyKeyboardBuilder()
keyboard.button(text='🎰 Играть')
keyboard.adjust(1)
return keyboard.as_markup(resize_keyboard=True)
@router.message(CommandStart())
async def start_command(message: Message):
await message.answer(text='Привет! Нажми кнопку Играть чтобы испытать удачу.',
reply_markup=get_keyboard())
@router.message(F.text == '🎰 Играть')
async def get_game(message: Message):
result_dice = await message.answer_dice(emoji='🎰')
await asyncio.sleep(3)
text = get_result_text(result_dice=result_dice.dice.value, bid=5)
await message.answer(text=text)
async def start():
bot: Bot = Bot(token=BOT_TOKEN, parse_mode='HTML')
dp: Dispatcher = Dispatcher()
dp.include_router(router=router)
try:
await dp.start_polling(bot)
finally:
await bot.session.close()
if __name__ == '__main__':
asyncio.run(start())













