Как случайным образом выбрать файл с рассолом? - PullRequest
0 голосов
/ 08 января 2020

Для школьного проекта мне нужно создать программу, которая случайным образом выбирает песню из файла и вводит имя исполнителя и название песни, а игрок должен заполнить пробел из имени исполнителя и названия песни, чтобы заработать очки. ,

Одним из требований к проекту является то, что он случайным образом выбирает файл из папки для песни, поэтому я попытался использовать модуль pickle и turtle - для вкладки и где-то для вывода программа, если это имеет смысл, и я сформулировал это правильно.

К сожалению, ничего не может быть много вещей. Самое большое, что у меня есть, это то, что у меня есть песни в коде, который перекрывает их на вкладке, когда он запущен, и я хочу, чтобы программа показывала только одну песню за раз и скрывала остальные, пока пользователь не угадал

Вот мой код:

import turtle
import os
import pickle
import random

#Screem
screen = turtle.Screen()
screen.bgcolor("black")
screen.title("Main Screen")

#Border
border = turtle.Turtle()
border.speed(0)
border.penup()
border.color("white")
border.setposition(-300, -300)
border.pensize(3)
border.pendown()
for side in range(4):
    border.fd(600)
    border.lt(90)
border.hideturtle()

song1 = turtle.Turtle()
song1.color("white")
song1.penup()
song1.speed(0)
song1.setposition(-200, -200)
song1string = ("_ost malone _n god")
song1.write(song1string, False, align="Left", font=("Arial", "14", "normal"))
song1string2 = ("_minem _ap _od")
song1.write(song1string2, False, align="Left", font=("Arial", "14", "normal"))
song1.hideturtle()

song1.clear()

songs = []
songs.append(song1string)
songs.append(song1string2)
pickle.dump(songs, open("songs.py", "wb"))

songs = pickle.load(open("songs.py", "rb"))

final_song = random.choice("songs.py")

screen.mainloop()

1 Ответ

0 голосов
/ 08 января 2020

Честно говоря, я не совсем понимаю, что делает ваш код, и почему вы даже используете pickle. Независимо от этого, возможно, помогут следующие изменения с # ALL CAP комментариями, указывающими, где они были amde:

import turtle
import os
import pickle
import random

#Screem
screen = turtle.Screen()
screen.bgcolor("black")
screen.title("Main Screen")

#Border
border = turtle.Turtle()
border.speed(0)
border.penup()
border.color("white")
border.setposition(-300, -300)
border.pensize(3)
border.pendown()
for side in range(4):
    border.fd(600)
    border.lt(90)
border.hideturtle()

song1 = turtle.Turtle()
song1.color("white")
song1.penup()
song1.speed(0)
song1.setposition(-200, -200)
song1string = ("_ost malone _n god")
song1.write(song1string, False, align="Left", font=("Arial", "14", "normal"))
song1.setposition(-200, -180)  # ADDED SO NEXT ONE IS ON DIFFERENT LINE
song1string2 = ("_minem _ap _od")
song1.write(song1string2, False, align="Left", font=("Arial", "14", "normal"))
song1.hideturtle()

#song1.clear()   # DISABLED

songs = []
songs.append(song1string)
songs.append(song1string2)
pickle.dump(songs, open("songs.pkl", "wb"))  # Changed file name.

songs = pickle.load(open("songs.pkl", "rb"))  # Changed file name.

final_song = random.choice(songs)  # CHANGED TO SELECT ONE FROM UNPICKLED LIST.
print('final_song: {!r}'.format(final_song))  # ADDED

screen.mainloop()
...