Как бы я добавил целое число в одну строку от моего бота? - PullRequest
1 голос
/ 07 апреля 2020

Я не знаю, как сформулировать этот вопрос, но я пытаюсь поместить всю информацию из списка в один ответ моего бота.

import discord
import random

DND_1d6 = [1, 2, 3, 4, 5, 6]

@client.event
async def on_message(message):
    if message.content.startswith(";roll 1d6"):
        response = random.choice(DND_1d6)
        await message.channel.send(response)

    if message.content.startswith(";roll 2d6"):
        response = random.choice(DND_1d6), random.choice(DND_1d6)
        response_added = random.choice(DND_1d6) + random.choice(DND_1d6)
# how would i use these two variables together in one line?
        await message.channel.send()

client.run(client_id)

Так, например, если пользователь печатает "; roll 2d6 "Я хочу, чтобы бот набрал первый и второй бросок отдельно," 2, 6 ", и пусть бот сложит два числа вместе" 8 "в одну красивую строку. Это просто качество жизни, чтобы не спамить в чате. Как я мог go об этом? Конечный результат, который я ищу, будет выглядеть примерно так: «Вы бросили x и y на общую сумму z

1 Ответ

2 голосов
/ 07 апреля 2020

Вы можете построить строку, используя полученные результаты, и отправить ее на канал.

Также обратите внимание, что response = random.choice(DND_1d6), random.choice(DND_1d6) создает tuple, который содержит два броска, например (2,6). Вам не нужно снова бросать, как вы делаете в response = random.choice(DND_1d6), random.choice(DND_1d6), так как это даст вам разные номера (они не связаны с предыдущими бросками).

import discord
import random

DND_1d6 = [1, 2, 3, 4, 5, 6]

@client.event
async def on_message(message):
    if message.content.startswith(";roll 1d6"):
        response = random.choice(DND_1d6)
        await message.channel.send(response)

    if message.content.startswith(";roll 2d6"):
        response = random.choice(DND_1d6), random.choice(DND_1d6)
        response_str = 'You rolled {0} and {1} for a total of {2}'.format(response[0], response[1], sum(response))
        await message.channel.send(response_str )

client.run(client_id)
...