Как написать игру для ICQ на Python

Отредактировано

Пишем простого 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.

Как написать игру для ICQ на Python 1
Следите за новыми постами
Следите за новыми постами по любимым темам
2К открытий2К показов