Пишем простого ICQ-бота на Python для игры в «Угадай число», где диапазон чисел составит от 1 до 99 для отгадывания.
2К открытий2К показов
Приветствую. Сегодня хотелось бы написать простого ICQ бота для игры в «Угадай число», где у пользователя будет неограниченное количество попыток, а диапазон чисел составит от 1 до 99 для отгадывания. Сразу хотелось бы сказать, что данный бот работает не совсем так, как хотелось бы, это можно увидеть по фото ниже, т. к. я в этом начинающий.
Устанавливаем библиотеку для ICQ ботов
Для начала нам понадобится сам Python, и специальная библиотека для работы с ботами, качаем её через pip:
pip install mailru-im-bot
Теперь, переходим в ICQ и ищем в поиске @metabot. Создаём бота, скопировав и сохранив токен. В дальнейшем он нам понадобится.
Код игры
from bot.bot import Bot
from bot.handler import MessageHandler, BotButtonCommandHandler
import json
import random
ran_num = random.randint(1, 100)
ran_num = str(ran_num)
TOKEN = "Токен вашего бота"
bot = Bot(token=TOKEN)
def bot_play_text(bot, event):
if event.data["text"] == "/start":
bot.send_text(chat_id=event.from_chat, text="Привет! Я бот для игры в угадай число. Начнём?",
inline_keyboard_markup="{}".format(json.dumps([[
{"text":"Начать", "callbackData":"call_btn_id_1", "style":"attention"}]])))
def num_play(bot, event):
if event.data["text"] == ran_num:
bot.send_text(chat_id=event.from_chat, text="Да, вы справились")
elif event.data["text"] > ran_num:
bot.send_text(chat_id=event.from_chat, text="Загаданное число меньше.")
elif event.data["text"] < ran_num:
bot.send_text(chat_id=event.from_chat, text="Загаданное число больше.")
def bot_play(bot, event):
if event.data["callbackData"] == "call_btn_id_1":
bot.send_text(chat_id=event.from_chat, text="Я загадал число от 1 до 99, количество попыток: неограниченно.")
bot.send_text(chat_id=event.from_chat, text="Ваше предположение?")
bot.dispatcher.add_handler(MessageHandler(callback=bot_play_text))
bot.dispatcher.add_handler(MessageHandler(callback=num_play))
bot.dispatcher.add_handler(BotButtonCommandHandler(callback=bot_play))
bot.start_polling()
bot.idle()
Итог
Оставьте программу активной и перейдите в ICQ. Найдите своего бота в списке и отправьте команду /start.
Telegram снова столкнулся с серьёзным сбоем, затронувшим пользователей в России и соседних странах. Проблемы с подключением к серверу вынудили некоторых использовать сторонний софт для доступа. Это уже второй сбой за неделю, причину которого представители мессенджера пока не прокомментировали.