초보자가 주사위를 흔드는 Discord Bot을 만들었습니다.
8840 단어 Python3디스코드㎢ 분말 rd. py파이썬bot
Python 초보자 끊임없는 점 등 많이 있다고 생각합니다만, 부담없이 읽어 주시면 다행입니다.
조언 등을 해 주시면 매우 기쁩니다.
2019/09/09 받은 메시지의 주사위 면수와 개수를 변수에 전달하는 곳과 주사위의 눈의 합을 계산하는 부분을 개선했습니다. 멋진 조언 감사합니다!
이번에 만드는 것의 목표
Discord에서 !dice AdB
(A는 얼마 안되는 개수, B는 얼마 안되는 면수, AB 모두 1 이상)를 입력하면 주사위를 흔든 결과를 표시하는 Bot을 만든다.
환경
사전 준비
bot 준비
Python으로 간단한 Discord Bot을 만드는 방법
htps : // 코 m / 피나 p 푼 r / ms / 아 f4 cd b04727437477f
Discord Bot 가장 빠른 튜토리얼【Python&Heroku&GitHub】
htps : // 이 m / 1은 g 등 9 / ms / 아 4b373 8895273875 8
이 기사는 매우 이해하기 쉽습니다.
bot 만들기
main.pyimport discord
import sys
# さいころの和を計算する用の関数
from func import diceroll
TOKEN = '任意のトークン'
client = discord.Client()
@client.event
async def on_ready():
print('--------------')
print('ログインしました')
print(client.user.name)
print(client.user.id)
print('--------------')
channel = client.get_channel('チャンネルID')
await channel.send('楽しいTRPGを始めましょう!')
@client.event
async def on_message(message):
if message.author.bot:
return
if message.content.startswith("!dice"):
# 入力された内容を受け取る
say = message.content
# [!dice ]部分を消し、AdBのdで区切ってリスト化する
order = say.strip('!dice ')
cnt, mx = list(map(int, order.split('d'))) # さいころの個数と面数
dice = diceroll(cnt, mx) # 和を計算する関数(後述)
await message.channel.send(dice[cnt])
del dice[cnt]
# さいころの目の総和の内訳を表示する
await message.channel.send(dice)
client.run(TOKEN)
다음으로 합을 계산하는 함수의 내용입니다.
func.pyimport random
def diceroll(cnt, max):
total = 0
num_list = []
for i in range(0, cnt):
# ランダムに1からサイコロの面数までの和を取得しリストに入れる
num = random.randint(1, max)
num_list.append(num)
# さいころの目の総和を計算しリストに入れる
total = sum(num_list)
num_list.append(total)
return num_list
결과
제대로 총화, 내역 모두 표시했습니다.
덧붙여서 100d100 정도 크더라도 표시해줍니다. (그런 일은 하지 않을 것입니다만)
결론
처음으로 Discord의 Bot을 만들어 보았습니다만, 생각보다 부담없이 만들 수 있어 즐거웠습니다.
주사위의 합계의 계산이거나, 명령을 받는 방법이거나 여러가지 불모호한 장소가 있으므로, 앞으로보다 Python을 정진해 개량해 나가면 된다고 생각합니다.
그 밖에도 다양한 Bot 만들고 싶다.
참고
사전 준비에서 언급 한 훌륭한 기사 및 그 샘플 코드
Python으로 간단한 Discord Bot을 만드는 방법
htps : // 코 m / 피나 p 푼 r / ms / 아 f4 cd b04727437477f
Discord Bot 가장 빠른 튜토리얼【Python&Heroku&GitHub】
htps : // 이 m / 1은 g 등 9 / ms / 아 4b373 8895273875 8
Reference
이 문제에 관하여(초보자가 주사위를 흔드는 Discord Bot을 만들었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/imaimai17468/items/18541e8734eee403936c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
main.py
import discord
import sys
# さいころの和を計算する用の関数
from func import diceroll
TOKEN = '任意のトークン'
client = discord.Client()
@client.event
async def on_ready():
print('--------------')
print('ログインしました')
print(client.user.name)
print(client.user.id)
print('--------------')
channel = client.get_channel('チャンネルID')
await channel.send('楽しいTRPGを始めましょう!')
@client.event
async def on_message(message):
if message.author.bot:
return
if message.content.startswith("!dice"):
# 入力された内容を受け取る
say = message.content
# [!dice ]部分を消し、AdBのdで区切ってリスト化する
order = say.strip('!dice ')
cnt, mx = list(map(int, order.split('d'))) # さいころの個数と面数
dice = diceroll(cnt, mx) # 和を計算する関数(後述)
await message.channel.send(dice[cnt])
del dice[cnt]
# さいころの目の総和の内訳を表示する
await message.channel.send(dice)
client.run(TOKEN)
다음으로 합을 계산하는 함수의 내용입니다.
func.py
import random
def diceroll(cnt, max):
total = 0
num_list = []
for i in range(0, cnt):
# ランダムに1からサイコロの面数までの和を取得しリストに入れる
num = random.randint(1, max)
num_list.append(num)
# さいころの目の総和を計算しリストに入れる
total = sum(num_list)
num_list.append(total)
return num_list
결과
제대로 총화, 내역 모두 표시했습니다.
덧붙여서 100d100 정도 크더라도 표시해줍니다. (그런 일은 하지 않을 것입니다만)
결론
처음으로 Discord의 Bot을 만들어 보았습니다만, 생각보다 부담없이 만들 수 있어 즐거웠습니다.
주사위의 합계의 계산이거나, 명령을 받는 방법이거나 여러가지 불모호한 장소가 있으므로, 앞으로보다 Python을 정진해 개량해 나가면 된다고 생각합니다.
그 밖에도 다양한 Bot 만들고 싶다.
참고
사전 준비에서 언급 한 훌륭한 기사 및 그 샘플 코드
Python으로 간단한 Discord Bot을 만드는 방법
htps : // 코 m / 피나 p 푼 r / ms / 아 f4 cd b04727437477f
Discord Bot 가장 빠른 튜토리얼【Python&Heroku&GitHub】
htps : // 이 m / 1은 g 등 9 / ms / 아 4b373 8895273875 8
Reference
이 문제에 관하여(초보자가 주사위를 흔드는 Discord Bot을 만들었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/imaimai17468/items/18541e8734eee403936c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
처음으로 Discord의 Bot을 만들어 보았습니다만, 생각보다 부담없이 만들 수 있어 즐거웠습니다.
주사위의 합계의 계산이거나, 명령을 받는 방법이거나 여러가지 불모호한 장소가 있으므로, 앞으로보다 Python을 정진해 개량해 나가면 된다고 생각합니다.
그 밖에도 다양한 Bot 만들고 싶다.
참고
사전 준비에서 언급 한 훌륭한 기사 및 그 샘플 코드
Python으로 간단한 Discord Bot을 만드는 방법
htps : // 코 m / 피나 p 푼 r / ms / 아 f4 cd b04727437477f
Discord Bot 가장 빠른 튜토리얼【Python&Heroku&GitHub】
htps : // 이 m / 1은 g 등 9 / ms / 아 4b373 8895273875 8
Reference
이 문제에 관하여(초보자가 주사위를 흔드는 Discord Bot을 만들었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/imaimai17468/items/18541e8734eee403936c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(초보자가 주사위를 흔드는 Discord Bot을 만들었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/imaimai17468/items/18541e8734eee403936c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)