[PYTHON] Comment créer un bot Janken qui peut être facilement déplacé (commentaire)

Tout d'abord

En tant que prémisse majeure, cela peut être un peu difficile sans une connaissance de base de python (** if statement **?) Pas du tout! ~~ Python, qu'est-ce que c'est délicieux? Je pense que les gens peuvent comprendre en quelque sorte en étudiant un peu sur le site suivant. Je suis moi-même un débutant, donc je ne le comprends pas parfaitement, je ne sais pas si ça marche comme ça, mais je vais le laisser comme un mémorandum. Eh bien, je veux faire un bot Janken pour le moment! Veuillez copier et déplacer la personne de manière appropriée

Environnement de l'écrivain

Conditions préalables

Nous partirons du principe que python et discord.py fonctionneront dans votre éditeur Ça ne marche pas! Veuillez le faire fonctionner en vous basant sur les articles publiés par d'autres personnes. Pas spécifiquement expliqué dans cet article

Passons au sujet principal

Enfin au code

En conclusion, si vous copiez ce code, cela fonctionnera, ~~ peut-être ~~

JankenBot


import discord
import random
client = discord.Client()


@client.event
async def on_message(message):
"""Traitez le message suivant"""
    global result, judge
    if message.author.bot:  #Évitez les messages des bots
        return

    if message.content == "!! Janken":
        await message.channel.send("Au début, goo, Janken")

        jkbot = random.choice(("Goo", "Choki", "Par"))
        draw = "C'est un tirage au sort ~"
        wn = "Vous gagnez!"
        lst = random.choice(("Ma victoire! Faible wwwwwwwwwwww Que faire si j'arrête? Janken",
                              "J'ai gagné(∩´∀`)∩, réessayez!"))

        def jankencheck(m):
            return (m.author == message.author) and (m.content in ['Goo', 'Choki', 'Par'])

        reply = await client.wait_for("message", check=jankencheck)
        if reply.content == jkbot:
            judge = draw
        else:
            if reply.content == "Goo":
                if jkbot == "Choki":
                    judge = wn
                else:
                    judge = lst

            elif reply.content == "Choki":
                if jkbot == "Par":
                    judge = wn
                else:
                    judge = lst

            else:
                if jkbot == "Goo":
                    judge = wn
                else:
                    judge = lst

        await message.channel.send(judge)

Eh bien, ça ressemble à ça. Si vous essayez ceci pour le moment

無題.png

Cela fonctionne comme ça. Creusons un peu plus loin.

Bref commentaire

Je ne peux donner qu'une explication très simple, mais il n'y a que quelques éléments difficiles à comprendre personnellement. (~~ Le manque de connaissances de l'auteur est révélé ~~)

    if message.content == "!! Janken":
        await message.channel.send("Au début, goo, Janken")

Tout d'abord dans cette partie **! Janken ** Si entré ** Au début, il est décrit comme renvoyant "Goo, Janken **". Je m'en souviens parce que je l'utilise non seulement pour ce bot Janken mais aussi pour faire autre chose (auto-conseillé)

        jkbot = random.choice(("Goo", "Choki", "Par"))

Ici pour ** jkbot **

-Goo --Choki --Par

Chacun d'entre eux sera attribué au hasard.

        lst = random.choice(("Ma victoire! Faible wwwwwwwwwwww Que faire si j'arrête? Janken",
                              "J'ai gagné(∩´∀`)∩, réessayez!"))

Ici, au début, je n'ai écrit que le deuxième message, mais je voulais une stimulation, alors j'ai également randomisé le message perdu en utilisant une fonction aléatoire. Si vous n'en avez pas besoin, remplacez-le normalement par ** wn ** ou ** draw **.

        def jankencheck(m):
            return (m.author == message.author) and (m.content in ['Goo', 'Choki', 'Par'])

        reply = await client.wait_for("message", check=jankencheck)

** dans cette partie! En attente d'un message de la personne qui a lancé Janken **, le message envoyé

-Goo --Choki --Par

Si c'est vrai, continuez avec le code suivant ~~ Honnêtement, je ne comprends pas vraiment cette partie moi-même ~~ Je l'écris comme si c'était quelque chose comme ça.

        if reply.content == jkbot:
            judge = draw
        else:
            if reply.content == "Goo":
                if jkbot == "Choki":
                    judge = wn
                else:
                    judge = lst

            elif reply.content == "Choki":
                if jkbot == "Par":
                    judge = wn
                else:
                    judge = lst

            else:
                if jkbot == "Goo":
                    judge = wn
                else:
                    judge = lst

C’est facile ici, non? Pour être honnête, je n'ai rien à expliquer. ~~ Parce que je ne peux dire que ce que j'ai vu ~~

        await message.channel.send(judge)

Cela enverra la dernière valeur attribuée à ** juge **.

Etes-vous insatisfait?

Avec cela, il devrait fonctionner comme un bot Janken sans aucun problème ~~ Je veux quelque chose d'un peu plus! Pour les débutants gourmands, j'ai également mis un code qui envoie automatiquement un message au démarrage de Bot. Je suis content du bot Janken car je n'écrirai que le code pour lui et des choses à ce sujet ci-dessous! Je vous remercie pour votre travail acharné! Veuillez commenter si vous en avez.

Pour les gourmands

L'événement au démarrage du Bot

@client.event
async def on_ready():
"""Écrivez le processus qui se produit lorsque le bot démarre"""

Vous pouvez écrire avec. Cette fois, nous ajouterons une fonction pour vous avertir sur Discord lorsque vous démarrez Bot.

kidou.png

Ça ressemble à ça.

Tout d'abord, décidez à quel canal vous voulez que le message soit envoyé et copiez l'ID de ce canal. Si vous ne savez pas comment copier l'ID, veuillez le vérifier vous-même, je l'omettrai.

Après la copie

channel = client.get_channel(ID)

Veuillez réécrire l'ID que vous avez copié précédemment dans la partie ID. Vous pouvez laisser les numéros copiés tels quels

Vous pouvez maintenant spécifier le canal

et enfin

await channel.send("etc")  #Veuillez mettre vos phrases préférées dans la partie etc

Si vous écrivez, il sera envoyé automatiquement au démarrage du Bot.

finalement

Tout d'abord, merci pour votre travail acharné. Je suis désolé que l'explication ait été difficile à comprendre en raison de ma faible maîtrise du japonais et de mon manque de vocabulaire. : arc:

Puisqu'il s'agit d'un article pour débutants, il peut s'agir d'un code qui vous donne envie de faire diverses réclamations si vous avez des connaissances, mais pardonnez-moi s'il vous plaît. J'ai pu bouger quelque chose même si je ne comprenais pas grand-chose au début, y compris moi-même! Je pense que l'impression est le chemin vers la prochaine étape ...

C'est tout pour cet article. Si vous rencontrez des problèmes ou des erreurs, veuillez contacter Twitter.

Recommended Posts

Comment créer un bot Janken qui peut être facilement déplacé (commentaire)
Comment créer un bot slack
[Python] Créez un graphique qui peut être déplacé avec Plotly
Créez un graphique des devises qui peut être déplacé avec Plotly (2)
Créez un graphique des devises qui peut être déplacé avec Plotly (1)
Comment installer la bibliothèque Python qui peut être utilisée par les sociétés pharmaceutiques
J'ai essayé de faire une application mémo qui peut être pomodoro, mais un enregistrement de réflexion
Comment créer une propriété de relations qui peuvent être prefetch_related par des conditions spécifiques
Comment créer un BOT Cisco Webex Teams à l'aide de Flask
Faisons un diagramme sur lequel on peut cliquer avec IPython
Comment faire une traduction japonais-anglais
Comment configurer un serveur SMTP simple qui peut être testé localement en Python
Comment créer un robot - Avancé
Comment créer une fonction récursive
[Blender] Comment créer un plug-in Blender
Comment créer un robot - Basic
Créez une Spinbox qui peut être affichée en binaire avec Tkinter
Créez une Spinbox pouvant être affichée dans HEX avec Tkinter
[Python] Comment rendre une classe itérable
Comment créer un indicateur personnalisé Backtrader
Comment créer un plan de site Pelican
Les débutants en Python ont décidé de créer un bot LINE avec Flask (commentaire approximatif de Flask)
Créez une application Web qui peut être facilement visualisée avec Plotly Dash
Créez un Discord Bot qui peut rechercher et coller des images
Comment créer un système de dialogue dédié aux débutants
Notes pour créer des figures pouvant être publiées dans des revues avec matplotlib
J'ai essayé de créer une classe qui peut facilement sérialiser Json en Python
Je souhaite créer une file d'attente prioritaire pouvant être mise à jour avec Python (2.7)
Comment créer un dictionnaire avec une structure hiérarchique.
Si vous souhaitez créer une application Windows (exe) qui peut être utilisée maintenant en utilisant uniquement Python
Créez un chat bot et entraînez-vous à être populaire.
Comment créer un plug-in QGIS (génération de package)
J'ai lu "Comment créer un laboratoire de piratage"
J'ai essayé de créer un BOT de traduction qui fonctionne avec Discord en utilisant googletrans
Comment faire un Raspberry Pi qui parle les tweets d'un utilisateur spécifié
Module de grattage "Gaspacho" qui peut être utilisé plus facilement que Beautiful Soup
Une nouvelle forme d'application qui fonctionne avec GitHub: Comment créer des applications GitHub
Convertir des images du SDK FlyCapture en un formulaire pouvant être utilisé avec openCV
Comment créer une clé USB que l'installateur Linux et Win10 et winpe peuvent démarrer UEFI
Comment filtrer les clés externes qui peuvent être sélectionnées sur l'écran d'administration de Django
Vous pouvez le faire en 3 minutes! Comment créer un code QR (GIF) fonctionnel!
Les débutants en Python ont créé un chat BOT alors j'ai essayé de résumer comment le faire
L'explication la plus simple au monde sur la création de LINE BOT (1) [Account preparation]
Un mécanisme pour appeler des méthodes Ruby à partir de Python qui peut être fait en 200 lignes
Créez un BOT qui raccourcit l'URL Discord
Comment faire un jeu de tir avec toio (partie 1)
Comment créer un package Python à l'aide de VS Code
[Python] Comment écrire une docstring conforme à PEP8
Bases de PyTorch (2) -Comment créer un réseau de neurones-
Comment démarrer un serveur WEB simple qui peut exécuter des cgi de php et python
Disocrd bot que même les débutants peuvent publier régulièrement les résultats de Splatoon 2 sur stat.ink gratuitement
J'ai fait un module qui peut être glitch facilement, mais je ne peux pas passer l'argument de entry_points
Comment afficher le texte et le texte de survol qui peuvent être exécutés en cliquant avec le plug-in Minecraft
[Python] Un programme pour trouver le nombre de pommes et d'oranges qui peuvent être récoltées
Comment créer un LINE BOT 004 interactif (répondre à la date de clôture d'une société cotée)
Comment définir des variables pouvant être utilisées dans toute l'application Django ~ Utile pour les modèles, etc. ~
Convertir les données de maillage exportées de SpriteUV2 dans un format pouvant être importé par Spine
Une note sur la façon de préparer facilement un environnement de pratique Linux