Top.Mail.Ru
Ответы

Бот в telegram, Python

Создать текстовую RPG игру.

Бот выводит игроку историю, в течении которой будет задавать пользователю вопросы с выбором ответов, в зависимости от ответов пользователя история будет развиваться дальше, в данной игре могут быть несколько типов концовок - положительная, отрицательная и секретные.


- Создан файл и импортирована библиотека telebot.Бот выводит историю и есть разные типы концовок, есть предметы для обмена и взятия. Не менее 70% кода покрыто комментариями, код в удобочитаемом виде (PEP8)

По дате
По рейтингу
Аватар пользователя
Просветленный
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
 import telebot 
 
bot = telebot.TeleBot('YOUR_BOT_TOKEN') 
chat_id = 'CHAT ID Ваш' 
 
class Bot: 
    def __init__(self): 
        self.player = {}  # информация об игроке 
 
    def start_game(self): 
        # Начало игры 
        self.player = {'name': '', 'health': 100, 'inventory': ()}  
        self.ask_question("Приветствую! Как вас зовут?", ["Алекс", "Катя", "Макс"])  # Задаем первый вопрос 
 
    def ask_question(self, question_text, options): 
        # Задать вопрос с вариантами ответов 
        markup = telebot.types.ReplyKeyboardMarkup(one_time_keyboard=True)  # Создаем клавиатуру с вариантами ответов 
        for option in options: 
            markup.add(telebot.types.KeyboardButton(option))  # Добавляем кнопки с вариантами ответов 
     
        bot.send_message(chat_id, question_text, reply_markup=markup)  # Отправляем вопрос игроку через Telegram 
 
    def handle_answer(self, answer): 
        # Обработка ответа игрока 
        if answer == "Алекс": 
            self.player['name'] = "Алекс" 
            self.ask_question("Отлично, Алекс! Выберите предмет из инвентаря: меч или посох?", ["меч", "посох"]) 
        elif answer == "Катя": 
            self.player['name'] = "Катя" 
            self.ask_question("Привет, Катя! Что выберешь: зелье здоровья или магический кристалл?", ["зелье", "кристалл"]) 
        elif answer == "Макс": 
            self.player['name'] = "Макс" 
            self.ask_question("Приветствую, Макс! Куда направимся: лес или пещера?", ["лес", "пещера"]) 
 
    def end_game(self, ending_type): 
        # Завершение игры с указанием типа концовки 
        if ending_type == "положительная": 
            # Логика для положительной концовки 
            pass  # Замените pass на вашу логику 
        elif ending_type == "отрицательная": 
            # Логика для отрицательной концовки 
            pass  # Замените pass на вашу логику 
        elif ending_type == "секретная": 
            # Логика для секретной концовки 
            pass  # Замените pass на вашу логику 
 
            # Дополнительная логика для секретной концовки 
            secret_message = "Поздравляем! Вы нашли секретный путь и завершили игру особым образом." 
            bot.send_message(chat_id, secret_message)  # Отправляем сообщение о секретной концовке через Telegram 
 
# Создание экземпляра класса и запуск игры 
game_bot = Bot() 
game_bot.start_game() 
Аватар пользователя
Мыслитель

import telebot

# Создаем бота
bot = telebot.TeleBot('TOKEN')
# История игры
story = {
'начало': {
'текст': 'Вы просыпаетесь в темной комнате. Что вы будете делать?',
'варианты': [
{'текст': 'Попытаться разглядеть что-то вокруг', 'следующий_шаг': 'комната'},
{'текст': 'Попытаться заснуть', 'следующий_шаг': 'конец_1'},
{'текст': 'Попытаться выбраться', 'следующий_шаг': 'конец_2'}
]
},
'комната': {
'текст': 'Вы видите стены и дверь. Что вы будете делать?',
'варианты': [
{'текст': 'Попытаться открыть дверь', 'следующий_шаг': 'дверь'},
{'текст': 'Искать выход', 'следующий_шаг': 'конец_3'},
{'текст': 'Попытаться вызвать помощь', 'следующий_шаг': 'конец_4'}
]
},
'дверь': {
'текст': 'Дверь закрыта. Что вы будете делать?',
'варианты': [
{'текст': 'Попытаться открыть дверь', 'следующий_шаг': 'конец_5'},
{'текст': 'Искать ключ', 'следующий_шаг': 'ключ'},
{'текст': 'Попытаться выбить дверь', 'следующий_шаг': 'конец_6'}
]
},
'ключ': {
'текст': 'Вы нашли ключ. Что вы будете делать?',
'варианты': [
{'текст': 'Попытаться открыть дверь', 'следующий_шаг': 'конец_7'},
{'текст': 'Искать другой выход', 'следующий_шаг': 'конец_8'},
{'текст': 'Остаться в комнате', 'следующий_шаг': 'конец_9'}
]
},
'конец_1': {
'текст': 'Вы заснули и не проснулись больше никогда. Конец игры.',
'варианты': []
},
'конец_2': {
'текст': 'Вы попытались выбраться, но у вас ничего не получилось. Конец игры.',
'варианты': []
},
'конец_3': {
'текст': 'Вы искали выход, но так и не нашли его. Конец игры.',
'варианты': []
},
'конец_4': {
'текст': 'Вы попытались вызвать помощь, но никто не услышал вас. Конец игры.',
'варианты': []
},

Следующая часть кода в комментарие