I'm a sound gamer. I usually play with CHUNITHM at arcades. But I can't play because I have declared an emergency. Am free. That's why I decided to take an intro quiz with the Soundtrack that I bought for the time being. But you can't do an intro quiz without a questioner. It's also a matter of asking my parents to play the role of the questioner, so I decided to have Python do it for the time being.
Gist is here.
Python: 3.8.2 python-vlc: 3.0.7110 VLC Media Player: 3.0.8 Vetinari
For steps 1 and 2, see this article. (0. Install Python 3.8.2.)
pip install python -vlc
. (For those who are familiar with it: If you do not want to pollute the global environment, set venv in the directory shown in step 3.)--The song will play for 10 seconds from the beginning.
--Unless the song title is less than 3 characters, it will not respond if it is less than 3 characters. It is useless to try to deceive by inserting only 1-2 characters.
--You can give up by typing give up
.
――If it is a partial match, it will be judged as "correct", and if it is an exact match, it will be judged as "perfect".
――I feel that bitrate related errors sometimes occur ~~, so there is no problem ~~.
Songs such as Arcaea are also mixed in the folder.
I made it properly so I don't know if it's a bug. But if you tell me, I may or may not fix it.
From here on, it's for people who are interested in the contents.
It's dirty because I rubbed my sleepy eyes in the middle of the night and wrote it properly.
intro_quiz.py
#After installing VLC media player, pip install python-Please vlc.
import glob
import os
import random
import time
import vlc
player = vlc.MediaPlayer()
print("Intro quiz!")
print("Please enter part of the song title! I will judge by partial match!")
print("The song plays for 10 seconds!")
print("If you really don't understand, enter "give up"!")
print("Unless the song title is 2 characters or less, it will not respond if the number of characters entered is 2 characters or less!")
music_count = 1
musics = glob.glob("*")
while True:
#File selection / playback
if musics == []:
break
else:
while True:
filename = random.choice(musics)
if filename.endswith(".py") or filename.endswith(".txt") or filename.startswith("AlbumArt_") or "Folder" in filename:
musics.pop(musics.index(filename))
else:
musics.pop(musics.index(filename))
break
music_name = os.path.splitext(os.path.basename(filename))[0]
player.set_mrl(filename)
player.play()
print(f"{music_count}Playing the song ...")
time.sleep(10)
player.stop()
print("Now enter the song title!")
while True:
answer = input(">> ")
if len(answer) >= min(3, len(filename)):
if answer == music_name:
print("Perfect! amazing!")
break
elif answer in music_name:
print("Correct answer! Congrats!")
break
elif answer == "giveup":
print("Nice try!")
break
else:
print("Sorry! Incorrect answer!")
else:
print(f"{min(3, len(filename))}Let's enter more than characters!")
print(f"The correct answer is "{music_name}"was!")
music_count += 1
print("All songs are over! Cheers for good work!")
Glob collects all the files in the same hierarchy. However, at that time, there were a lot of album arts in the same directory just because they were not displayed, so I play them properly. Other than that, I play Python files and txt files that are mixed in with something. You can add conditions to play with or, so it's a good idea to run print (glob.glob ("*"))
to see if there are any strange files. I think it's better to play extensions such as .jpg and .png.
Let's all do CHUNITHM! I tried to say, but I can't play now, so let's do Arcaea instead.