Quiz d'introduction réalisé avec Python et VLC auparavant, mais quand j'ai essayé cela en connectant un appel avec un ami avec Discord, c'était plus que ce à quoi je m'attendais. J'étais heureux. Bien que tout le monde l'apprécie, je n'étais pas satisfait du jeu réel, alors j'ai essayé d'améliorer ce point. L'essentiel du code avant l'amélioration est ici L'essentiel du code amélioré est ici
Identique au précédent. Python: 3.8.2 python-vlc: 3.0.7110 VLC Media Player: 3.0.8 Vetinari
Je vais énumérer les points qui ont été effectivement soulignés ou que j'ai trouvé gênants lors de la lecture. Il est numéroté pour des raisons de commodité afin que nous puissions le comparer au problème et décrire les points d'amélioration plus tard.
Quand je faisais le quiz, je recevais parfois une demande de «rejouer», mais je ne pouvais pas parce que je ne l'avais pas implémenté.
Par exemple, il y a une chanson appelée "Nirv luc E". Lorsque cette chanson est correcte, "nirv luce" et "Nirvluc E" seront jugés incorrects. Même dans le programme avant l'amélioration, la réponse parfaite (correspondance exacte) et la réponse correcte (correspondance partielle) étaient séparées, mais je pensais que ce ne serait pas un problème que la réponse correcte soit traitée comme une réponse incorrecte complète en raison de la différence de casse.
Ce programme était à l'origine conçu pour jouer seul, donc il n'y avait pas de problème, mais quand je jouais avec tout le monde, j'obtenais la bonne réponse ou j'abandonnais et ensuite j'étais heureux ou regretté de voir la bonne réponse. J'ai voulu.
Dans de rares cas, l'intro s'est déplacée vers l'écran de saisie de réponse sans que la musique ne démarre.
Il y avait un problème qui devenait ennuyeux au fur et à mesure que je m'en souvenais car une partie fixe coulait pendant un temps fixe.
Afin de vous éviter de saisir un seul caractère dans le titre de la chanson et d'en faire la bonne réponse, j'ai essayé de saisir au moins 3 caractères (malgré le fait que cela corresponde à l'explication) ) Même si je saisissais correctement le titre de la chanson avec 2 caractères ou moins, je jugeais que "le nombre de caractères d'entrée est trop petit".
Contrairement au problème 6, même de longs titres de chansons (par exemple, "une considération d'une vision du monde fantastique en moi et un événement dans une certaine réalité qui m'a rappelé sa manifestation") "en moi" et "le monde Il y avait une faille qui serait traitée comme une réponse correcte si vous saisissiez «vue» et «événement». Il n'y a pas beaucoup de chansons avec des titres très longs, mais je ne voulais pas avoir de telles lacunes.
Nous allons résoudre les sept problèmes énumérés ci-dessus.
Afin de résoudre le problème 1 et d'implémenter une fonction d'indication, nous avons rendu possible la saisie de commandes sur l'écran de saisie du titre de la chanson.
J'ai décidé de traiter la chaîne de caractères commençant par _
comme une commande.
J'ai choisi le trait de soulignement comme préfixe parce que je pensais qu'il n'y aurait pas de titre de chanson commençant par le trait de soulignement (car il y a quelque chose comme "!!! Chaos Time !!!" pour !
).
Nous avons intégré des fonctions d'abandon et d'indication dans ce système de commande.
Vous trouverez ci-dessous une liste des commandes réellement implémentées.
--_giveup
: abandonner la fonction. Entrez lorsque vous ne connaissez pas la réponse.
--_replay
: fonction de relecture. Rejouer.
--_length
: affiche la longueur du titre de la chanson.
--_letter
: affiche le premier caractère du titre de la chanson.
Cette image utilise en fait la fonction de commande. Je l'utilise dans la 5ème chanson.
La structure est telle que les commandes peuvent être ajoutées librement, de sorte que les astuces peuvent être encore améliorées.
Afin de résoudre le problème 2, l'alphabet saisi est converti en minuscules.
Pour cela, j'ai utilisé la méthode lower ()
fournie en Python.
Cependant, j'essaye de garder le titre original de la chanson pour un jugement parfait.
Pour plus de détails, veuillez consulter le code téléchargé sur Gist.
lower ()
et le titre original de la chanson avec lower ()
.
3.2 S'il est faux, il est jugé incorrect.Il est jugé par la procédure.
Cela a simplement mis ʻinput () pour que je doive appuyer sur Entrée pour passer à la chanson suivante. Au début, je pensais utiliser
time.sleep ()`, mais j'ai réalisé que je n'avais pas besoin de régler l'heure ici à une longueur fixe, alors je l'ai implémenté comme ça.
Afin de résoudre les problèmes 4 et 5 ensemble, la chanson est jouée à partir d'un point aléatoire au milieu au lieu de l'intro. De plus, la durée de lecture est choisie au hasard entre 3 et 7 secondes, de sorte qu'une difficulté élevée et une difficulté faible peuvent être mélangées de manière bien équilibrée.
Les problèmes 6 et 7 seront expliqués ensemble. Collez le code de la partie correspondante ci-dessous.
#Unité de jugement de longueur
if len(answer) >= min(len(music_name)//3, len(music_name_lower)):
#Unité de jugement de la bonne réponse
if answer == music_name:
print("Parfait! incroyable!")
break
elif answer_lower in music_name_lower:
print("Bonne réponse! Félicitations!")
break
else:
print("Pardon! Réponse incorrecte!")
else:
print("Il y a trop peu de caractères à saisir!")
Comme vous pouvez le voir sur la deuxième ligne, la condition est passée de "3 caractères ou plus" à "1/3 ou plus du titre de la chanson" (résolution du problème 7). De plus, en faisant cela, même si le titre de la chanson est un caractère, cela fonctionne normalement (problème 6 résolu).
Parfois, la chanson ne joue pas et j'obtiens ce genre d'erreur, mais je ne connais pas la cause et je l'ai laissée pour le moment.
De nos jours, je joue souvent ce quiz musical avec mes amis sur Discord, je veux donc rendre le jugement un peu plus facile en mettant les réponses entrées par mes amis dans le programme telles quelles. À ce stade, je dois copier et coller les réponses de chacun par moi-même.
Je souhaite définir le nombre de chansons à lire en premier et définir la limite supérieure à laquelle il est possible de répondre.
Il existe une chanson appelée "Tiama T: F minor", mais comme :
est un caractère qui ne peut pas être utilisé dans les noms de fichiers, il a été remplacé par des notations telles que Tiama T-F minor
et Tiama TF minor
.
Le titre de la chanson défini dans le fichier lui-même est correct, je voudrais donc l'utiliser pour juger.
J'ai fini avec un quiz musical au lieu d'un quiz d'introduction, mais je suis content parce que je m'ennuie moins. J'aimerais également acheter un CD pour augmenter la variété de chansons et de jouer.
Recommended Posts