Einführungsquiz mit Python und VLC zuvor, aber als ich dies versuchte, indem ich einen Anruf mit einem Freund mit Discord verband, war es mehr als ich erwartet hatte. Ich war glücklich. Obwohl es allen Spaß machte, war ich mit dem eigentlichen Spiel unzufrieden und versuchte, diesen Punkt zu verbessern. Der Kern des Codes vor der Verbesserung ist hier Der Kern des verbesserten Codes ist hier
Gleich wie der vorherige. Python: 3.8.2 python-vlc: 3.0.7110 VLC Media Player: 3.0.8 Vetinari
Ich werde die Punkte auflisten, auf die tatsächlich hingewiesen wurde oder die ich beim Spielen als unpraktisch empfunden habe. Es ist der Einfachheit halber nummeriert, damit wir es mit dem Problem vergleichen und die Verbesserungspunkte später beschreiben können.
Wenn ich das Quiz machte, erhielt ich manchmal die Aufforderung, es noch einmal zu spielen, aber ich konnte es nicht, weil ich es nicht implementiert hatte.
Zum Beispiel gibt es ein Lied namens "Nirv luc E". Wenn dieses Lied korrekt ist, werden "nirv luce" und "Nirvluc E" als falsch beurteilt. Selbst im Programm vor der Verbesserung wurden die perfekte (genaue Übereinstimmung) und die richtige Antwort (teilweise Übereinstimmung) getrennt, aber ich dachte, dass es kein Problem wäre, wenn die richtige Antwort aufgrund des Unterschieds im Fall als vollständig falsche Antwort behandelt würde.
Dieses Programm wurde ursprünglich für das Spielen alleine entwickelt, daher gab es kein Problem, aber als ich mit allen spielte, bekam ich die richtige Antwort oder gab auf und war dann glücklich oder bedauerte, die richtige Antwort zu sehen. Ich wollte.
In seltenen Fällen wechselte das Intro zum Antworteingabebildschirm, ohne dass die Musik gestartet wurde.
Es gab ein Problem, dass es langweilig wurde, als ich mich allmählich daran erinnerte, weil ein fester Teil für eine feste Zeit floss.
Um zu verhindern, dass Sie nur ein Zeichen in den Songtitel eingeben und die richtige Antwort geben, habe ich versucht, mindestens drei Zeichen einzugeben (obwohl dies der Erklärung entspricht). ) Selbst wenn ich den Songtitel mit 2 oder weniger Zeichen richtig eingebe, habe ich das Urteil erhalten, dass "die Anzahl der eingegebenen Zeichen zu gering ist".
Im Gegensatz zu Problem 6 sogar lange Songtitel (zum Beispiel "eine Betrachtung einer fantastischen Weltanschauung in mir und ein Ereignis in einer bestimmten Realität, das mich an seine Manifestation erinnerte") "in mir" und "der Welt" Es gab eine Lücke, die als richtige Antwort behandelt würde, wenn Sie "Ansicht" und "Ereignis" eingeben würden. Es gibt nicht viele Songs mit sehr langen Titeln, aber ich wollte keine solchen Lücken haben.
Wir werden die sieben oben aufgeführten Probleme lösen.
Um Problem 1 zu lösen und eine Hinweisfunktion zu implementieren, haben wir es möglich gemacht, Befehle auf dem Eingabebildschirm für den Songtitel einzugeben.
Ich habe beschlossen, die Zeichenfolge, die mit "_" beginnt, als Befehl zu behandeln.
Ich habe den Unterstrich als Präfix gewählt, weil ich dachte, es gäbe keinen Songtitel, der mit dem Unterstrich beginnt (weil es so etwas wie "!!! Chaos Time !!!" für "!" Gibt).
Wir haben Abgabe- und Hinweisfunktionen in dieses Befehlssystem integriert.
Unten finden Sie eine Liste der tatsächlich implementierten Befehle.
--_giveup
: Funktion aufgeben. Geben Sie ein, wenn Sie die Antwort nicht kennen.
--_replay
: Wiedergabefunktion. Nochmal abspielen.
--_length
: Zeigt die Länge des Songtitels an.
--_letter
: Zeigt das erste Zeichen des Songtitels an.
Dieses Bild verwendet tatsächlich die Befehlsfunktion. Ich benutze es im 5. Lied.
Die Struktur ist so, dass Befehle frei hinzugefügt werden können, sodass Hinweise weiter verbessert werden können.
Um Problem 2 zu lösen, wird das eingegebene Alphabet in Kleinbuchstaben umgewandelt. Dafür habe ich die in Python bereitgestellte Methode "lower ()" verwendet. Ich versuche jedoch, den ursprünglichen richtigen Songtitel für ein perfektes Urteilsvermögen beizubehalten. Einzelheiten finden Sie im Code, der auf Gist hochgeladen wurde.
Es wird nach dem Verfahren beurteilt.
Dies gab einfach "input ()" ein, so dass ich die Eingabetaste drücken musste, um zum nächsten Song zu gelangen. Zuerst dachte ich über die Verwendung von "time.sleep ()" nach, aber mir wurde klar, dass ich die Zeit hier nicht auf eine feste Länge einstellen musste, also implementierte ich sie so.
Um die Probleme 4 und 5 gemeinsam zu lösen, wird das Lied von einem zufälligen Punkt in der Mitte anstelle des Intro gespielt. Außerdem wird die Wiedergabezeit zufällig zwischen 3 und 7 Sekunden ausgewählt, so dass hohe und niedrige Schwierigkeitsgrade ausgewogen gemischt werden können.
Die Probleme 6 und 7 werden gemeinsam erklärt. Fügen Sie den Code für das entsprechende Teil unten ein.
#Längenbeurteilungseinheit
if len(answer) >= min(len(music_name)//3, len(music_name_lower)):
#Richtige Antwortbeurteilungseinheit
if answer == music_name:
print("Perfekt! tolle!")
break
elif answer_lower in music_name_lower:
print("Richtige Antwort! Glückwunsch!")
break
else:
print("Es tut uns leid! Falsche Antwort!")
else:
print("Es sind zu wenige Zeichen eingegeben!")
Wie Sie in der zweiten Zeile sehen können, wurde die Bedingung von "3 Zeichen oder mehr" in "1/3 oder mehr des Songtitels" geändert (Problem 7 lösen). Auf diese Weise funktioniert der Songtitel auch dann normal, wenn er ein Zeichen ist (gelöstes Problem 6).
Gelegentlich wird das Lied nicht abgespielt und ich erhalte diese Art von Fehler, aber ich kenne die Ursache nicht und habe es vorerst verlassen.
Heutzutage spiele ich dieses Musikquiz oft mit meinen Freunden auf Discord, deshalb möchte ich das Urteil ein wenig erleichtern, indem ich die von meinen Freunden eingegebenen Antworten so in das Programm einbaue, wie sie sind. An dieser Stelle muss ich alle Antworten selbst kopieren und einfügen.
Ich möchte festlegen, wie viele Songs zuerst abgespielt werden sollen, und die Obergrenze festlegen, die beantwortet werden kann.
Es gibt ein Lied namens "Tiama T: F-Moll", aber da ":" ein Zeichen ist, das nicht in Dateinamen verwendet werden kann, wurde es durch Notationen wie "Tiama T-F-Moll" und "Tiama TF-Moll" ersetzt. Der in der Datei selbst festgelegte Songtitel ist korrekt, daher möchte ich ihn zur Beurteilung verwenden.
Am Ende hatte ich ein Musikquiz anstelle eines Intro-Quiz, aber ich bin glücklich, weil mir weniger langweilig ist. Außerdem möchte ich eine CD kaufen und mit mehr Variationen von Songs spielen.
Recommended Posts