ich weiß nicht viel über Ihre chatbot, noch will ich wirklich durch den gesamten Code graben Sie‘ Ich habe es in Ihre Frage aufgenommen (es ist mir nicht einmal klar, ob etwas davon Code ist, den Sie geschrieben haben, anstatt Beispielcode, der mit dem Bot).
Was ich tun kann, ist die Adresse die sterben rollenden Sachen. Das ist ziemlich einfach. Alles, was Sie brauchen, ist Pythons random
Modul und einige String-Manipulation und Formatierungscode.
import random
def roll_dice(dice_string):
"""Parse a string like "3d6" and return a string showing the die rolls and their sum"""
number_of_dice, number_of_sides = map(int, dice_string.split("d"))
rolls = [random.randint(1, number_of_sides) for _ in range(number_of_dice)]
output_string = "{} = {}".format(" + ".join(map(str(rolls)), sum(rolls))
return output_string
Beispiel Ausgabe:
>>> roll_dice("5d6")
'6 + 6 + 5 + 5 + 6 = 28'
>>> roll_dice("5d6")
'1 + 5 + 1 + 2 + 2 = 11'
>>> roll_dice("3d100")
'16 + 83 + 56 = 155'
>>> roll_dice("1d20")
'18 = 18'
Hoffentlich wird der Code ist ziemlich selbsterklärend. Die vier Anweisungen in der Funktion machen jeweils eine Sache: Analysieren der Eingabe, Erzeugen der angeforderten Zufallszahlen, Formatieren in eine Zeichenfolge für die Ausgabe und schließlich Zurückgeben der Zeichenfolge. Die zweite Zeile, die die tatsächliche Zufallszahlengenerierung ausführt, könnte nützlich sein, um sie als separate Funktion zu extrahieren (indem Ganzzahlargumente genommen und eine Liste von Ganzzahlen zurückgegeben wird).
Ich habe gerade bearbeitet, um die Code-Formatierung zu verbessern, aber ich habe Ihren dritten Absatz nicht wirklich verstanden, so dass seine Formatierung ein wenig seltsam bleibt. Vielleicht können Sie klären, was Sie mit "x Variablen ≥y" meinen (z. B. mit einem konkreten Beispiel)? – Blckknght
Mit x beziehe ich mich auf die Anzahl von "Würfeln" und mit y beziehe ich mich auf die Anzahl der Seiten auf diesen "Würfeln", die mit der höchsten Zahl korrelieren würden, die Sie erhalten könnten. Also "2d6" oder "2 Variablen kleiner oder gleich 6". Nehmen wir an, die gewählten Zahlen sind 3 und 6 werden in dem angezeigt, was ich meine "(Variable 1) + (Variable 2) = (Summe)" wäre "3 + 6 = 9". Ich werde auch versuchen, diesen Absatz zu verdeutlichen bisschen in meinem Beitrag. – Viper
Wenn Sie dies in einem Konsolenprogramm tun würden, wüssten Sie dann, wie der Zufallszahlen-Teil des Problems funktioniert? Das heißt, sind Sie nur über den Chat-Bot-Teil des Problems verwirrt, oder mehr über die Berechnung der Ergebnisse für '3d6'? Ich habe noch nie von "VicBot" gehört und bin nicht wirklich daran interessiert, große Mengen an Code zu lesen, um etwas darüber zu erfahren, aber ich könnte eine Antwort über das Zufallszahlen-Zeug zusammenstellen, wenn es das ist, worüber du eigentlich fragst . – Blckknght