[PYTHON] Wie man einen Janken-Bot macht, der leicht bewegt werden kann (Kommentar)

Als allererstes

Als Grundvoraussetzung kann es ohne Grundkenntnisse in Python etwas schwierig sein (** if-Anweisung **?) Überhaupt nicht! ~~ Python? Was ist es lecker? Ich denke, dass die Leute es irgendwie verstehen können, wenn sie an der folgenden Stelle ein wenig studieren. Ich bin selbst Anfänger, daher verstehe ich es nicht perfekt. Ich weiß nicht, ob es so funktioniert, aber ich werde es als Memorandum belassen. Nun, ich möchte vorerst einen Janken-Bot machen! Bitte kopieren und verschieben Sie die Person entsprechend

Autorenumgebung

Voraussetzungen

Wir gehen davon aus, dass python und discord.py in Ihrem Editor funktionieren Es funktioniert nicht! Bitte lassen Sie es basierend auf den Artikeln funktionieren, die von anderen Personen gepostet wurden. In diesem Artikel nicht speziell erklärt

Gehen wir zum Hauptthema

Zum Schluss noch zum Code

Wenn Sie diesen Code kopieren, funktioniert er abschließend, ~~ vielleicht ~~

JankenBot


import discord
import random
client = discord.Client()


@client.event
async def on_message(message):
"""Verarbeiten Sie die folgende Nachricht"""
    global result, judge
    if message.author.bot:  #Vermeiden Sie Nachrichten von Bots
        return

    if message.content == "!! Janken":
        await message.channel.send("Zuerst goo, Janken")

        jkbot = random.choice(("Schmiere", "Choki", "Par"))
        draw = "Es ist ein Unentschieden ~"
        wn = "Du gewinnst!"
        lst = random.choice(("Mein Gewinn! Schwach wwwwwwwwwwww Was ist, wenn ich aufhöre? Janken",
                              "ich habe gewonnen(∩´∀`)∩, versuche es erneut!"))

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

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

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

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

        await message.channel.send(judge)

Nun, es sieht so aus. Wenn Sie dies vorerst versuchen

無題.png

Es funktioniert so. Lassen Sie uns etwas tiefer graben.

Kurzer Kommentar

Ich kann nur eine wirklich einfache Erklärung geben, aber es gibt nur wenige Dinge, die persönlich schwer zu verstehen sind. (~~ Der Mangel an Wissen des Autors wird aufgedeckt ~~)

    if message.content == "!! Janken":
        await message.channel.send("Zuerst goo, Janken")

Zunächst in diesem Teil **! Janken ** Wenn eingegeben ** Zunächst wird es als "Goo, Janken **" zurückgegeben. Ich erinnere mich daran, weil ich es nicht nur für diesen Janken-Bot benutze, sondern auch, um etwas anderes zu machen (Selbstdisziplin)

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

Hier zu ** jkbot **

--Schmiere

Jeder von ihnen wird nach dem Zufallsprinzip zugewiesen.

        lst = random.choice(("Mein Gewinn! Schwach wwwwwwwwwwww Was ist, wenn ich aufhöre? Janken",
                              "ich habe gewonnen(∩´∀`)∩, versuche es erneut!"))

Hier habe ich zunächst irgendwie nur die zweite Nachricht geschrieben, aber ich wollte eine Stimulation, also habe ich auch die verlorene Nachricht mithilfe einer Zufallsfunktion randomisiert. Wenn Sie es nicht benötigen, ersetzen Sie es normalerweise wie ** wn ** oder ** draw **.

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

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

In diesem Teil **! Warten auf eine Nachricht von der Person, die Janken ** gestartet hat, die gesendete Nachricht

--Schmiere

Wenn dies der Fall ist, fahren Sie mit dem folgenden Code fort ~~ Ehrlich gesagt verstehe ich diesen Teil selbst nicht wirklich ~~ Ich schreibe es so, als ob es so etwas wäre.

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

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

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

Hier ist es einfach, oder? Um ehrlich zu sein, habe ich nichts zu erklären. ~~ Weil ich nur sagen kann, was ich gesehen habe ~~

        await message.channel.send(judge)

Dies sendet den letzten Wert, der ** Richter ** zugewiesen wurde.

Bist du unzufrieden?

Damit sollte es problemlos als Janken-Bot funktionieren ~~ Ich will etwas mehr! Für gierige Anfänger habe ich auch einen Code eingefügt, der automatisch eine Nachricht sendet, wenn Bot startet. Ich bin mit dem Janken-Bot zufrieden, weil ich nur den Code dafür und die Dinge darüber unten schreibe! Danke für deine harte Arbeit! Bitte kommentieren Sie, wenn Sie welche haben.

Für gierige Leute

Das Ereignis, wenn Bot startet

@client.event
async def on_ready():
"""Schreiben Sie den Prozess, der beim Starten des Bots auftritt"""

Sie können mit schreiben. Dieses Mal werden wir eine Funktion hinzufügen, die Sie über Discord benachrichtigt, wenn Sie Bot starten.

kidou.png

Es sieht aus wie das.

Entscheiden Sie zunächst, an welchen Kanal die Nachricht gesendet werden soll, und kopieren Sie die ID dieses Kanals. Wenn Sie nicht wissen, wie Sie die ID kopieren sollen, überprüfen Sie sie bitte selbst. Ich werde sie weglassen.

Nach dem Kopieren

channel = client.get_channel(ID)

Bitte schreiben Sie die ID, die Sie zuvor im ID-Teil kopiert haben, neu. Sie können die kopierten Nummern unverändert lassen

Jetzt können Sie den Kanal angeben

Und schlussendlich

await channel.send("etc")  #Bitte setzen Sie Ihre Lieblingssätze in den etc-Teil

Wenn Sie schreiben, wird es automatisch gesendet, wenn der Bot startet.

Schließlich

Zunächst einmal vielen Dank für Ihre harte Arbeit. Es tut mir leid, dass die Erklärung aufgrund meiner geringen Japanischkenntnisse und des fehlenden Wortschatzes möglicherweise schwer zu verstehen war. : Bogen:

Da dies ein Artikel für Anfänger ist, kann es ein Code sein, der Sie dazu bringt, verschiedene Beschwerden einzureichen, wenn Sie etwas Wissen haben, aber bitte verzeihen Sie mir. Ich konnte etwas bewegen, auch wenn ich anfangs nicht viel verstand, auch mich selbst! Ich denke, dass der Eindruck der Weg zum nächsten Schritt ist ...

Das ist alles für diesen Artikel. Wenn Sie Probleme oder Fehler haben, wenden Sie sich bitte an Twitter.

Recommended Posts

Wie man einen Janken-Bot macht, der leicht bewegt werden kann (Kommentar)
Wie man einen lockeren Bot macht
[Python] Erstellen Sie ein Diagramm, das mit Plotly verschoben werden kann
Erstellen Sie ein Währungsdiagramm, das mit Plotly (2) verschoben werden kann.
Erstellen Sie ein Währungsdiagramm, das mit Plotly (1) verschoben werden kann.
So installieren Sie die Python-Bibliothek, die von Pharmaunternehmen verwendet werden kann
Ich habe versucht, eine Memo-App zu erstellen, die Pomodoro sein kann, aber eine Reflexionsaufzeichnung
So erstellen Sie eine Eigenschaft von Beziehungen, die durch bestimmte Bedingungen vorab abgerufen werden kann
So erstellen Sie mit Flask einen BOT für Cisco Webex-Teams
Lassen Sie uns ein Diagramm erstellen, auf das mit IPython geklickt werden kann
Wie erstelle ich eine japanisch-englische Übersetzung?
So richten Sie einen einfachen SMTP-Server ein, der lokal in Python getestet werden kann
Wie erstelle ich einen Crawler?
So erstellen Sie eine rekursive Funktion
[Blender] So erstellen Sie ein Blender-Plug-In
Wie erstelle ich einen Crawler?
Erstellen Sie eine Spinbox, die mit Tkinter in Binär angezeigt werden kann
Erstellen Sie eine Spinbox, die mit Tkinter in HEX angezeigt werden kann
[Python] Wie man eine Klasse iterierbar macht
So erstellen Sie einen benutzerdefinierten Backtrader-Indikator
Wie erstelle ich eine Pelican Site Map?
Python-Anfänger haben beschlossen, einen LINE-Bot mit Flask zu erstellen (Flask-Kommentar)
Erstellen Sie eine Web-App, die mit Plotly Dash einfach visualisiert werden kann
Erstellen Sie einen Discord Bot, der Bilder suchen und einfügen kann
Wie man ein Dialogsystem für Anfänger erstellt
Hinweise zum Erstellen von Zahlen, die mit matplotlib in Zeitschriften veröffentlicht werden können
Ich habe versucht, eine Klasse zu erstellen, mit der Json in Python problemlos serialisiert werden kann
Ich möchte eine Prioritätswarteschlange erstellen, die mit Python (2.7) aktualisiert werden kann.
So erstellen Sie ein Wörterbuch mit einer hierarchischen Struktur.
Wenn Sie eine Windows-App (exe) erstellen möchten, die jetzt nur mit Python verwendet werden kann
Machen Sie einen Chat-Bot und üben Sie, beliebt zu sein.
So erstellen Sie ein QGIS-Plug-In (Paketerzeugung)
Ich las "Wie man ein Hacking Lab macht"
Ich habe versucht, einen Übersetzungs-BOT zu erstellen, der mit Discord unter Verwendung von Googletrans funktioniert
So erstellen Sie einen Raspberry Pi, der die Tweets eines bestimmten Benutzers spricht
Kratzmodul "Gaspacho", das einfacher zu verwenden ist als Beautiful Soup
Eine neue Form der App, die mit GitHub funktioniert: So erstellen Sie GitHub-Apps
Konvertieren Sie Bilder aus dem FlyCapture SDK in ein Formular, das mit openCV verwendet werden kann
So erstellen Sie einen USB-Stick, mit dem Linux- und Win10-Installer und Winpe UEFI starten können
So filtern Sie die externen Schlüssel, die auf dem Django-Verwaltungsbildschirm ausgewählt werden können
Sie können es in 3 Minuten tun! So erstellen Sie einen funktionierenden QR-Code (GIF)!
Python-Anfänger haben einen Chat-BOT erstellt, also habe ich versucht, zusammenzufassen, wie man es macht
Die weltweit am einfachsten zu verstehende Erklärung zur Herstellung von LINE BOT (1) [Kontoerstellung]
Ein Mechanismus zum Aufrufen von Ruby-Methoden aus Python, der in 200 Zeilen ausgeführt werden kann
Erstellen Sie einen BOT, der die Discord-URL verkürzt
Wie man ein Schießspiel mit toio macht (Teil 1)
So erstellen Sie ein Python-Paket mit VS Code
[Python] So schreiben Sie eine Dokumentzeichenfolge, die PEP8 entspricht
Grundlagen von PyTorch (2) - Wie erstelle ich ein neuronales Netzwerk?
So starten Sie einen einfachen WEB-Server, der CGI von PHP und Python ausführen kann
Disocrd Bot, dass auch Anfänger regelmäßig Splatoon 2 Ergebnisse kostenlos auf stat.ink veröffentlichen können
Ich habe ein Modul erstellt, das leicht fehlerhaft sein kann, aber ich kann das Argument nicht von entry_points übergeben
So zeigen Sie Hover-Text und Text an, der ausgeführt werden kann, indem Sie mit dem Minecraft-Plug-In klicken
[Python] Ein Programm, um die Anzahl der Äpfel und Orangen zu ermitteln, die geerntet werden können
So erstellen Sie einen interaktiven LINE BOT 004 (beantworten Sie den Stichtag eines börsennotierten Unternehmens)
So legen Sie Variablen fest, die in der gesamten Django-App verwendet werden können ~ Praktisch für Vorlagen usw. ~
Konvertieren Sie aus SpriteUV2 exportierte Netzdaten in ein Format, das von Spine importiert werden kann
Ein Hinweis zur einfachen Vorbereitung einer Linux-Übungsumgebung