Может кто-нибудь сказать мне, как вернуться к началу игры? - PullRequest
0 голосов
/ 21 апреля 2020

Это игра, которую я написал. Это игра в угадывание слов.

from random import randint
from tkinter import *

def umm():
  continue
def quit():
  master.destroy()

answer = randint(0,16)
wrong_answer = randint(0,16)
wrong_answer1 = randint(0,16)

s_list =   ["apple","book","phone","sheep","ruler","pen","eraser","knife","cement","Google","file","stapler","thermometer","box","glue","yes","no"]
hint_list = ["Fruit","Read","Technology","Animal","Measure Length","Writing","Stationary","Cut  food", "Building Material","Search Engine","Paper organizer","Binding papers together","Temperature","Storage","Attach things together","Approval","Disapproval"]
secret_word = s_list[answer]
hint = f'Hint:{hint_list[answer]}'
incorrect = s_list[wrong_answer]
incorrect1 = s_list[wrong_answer1]

master = Tk()
master.title("2 Players Guessing Game!")
master.geometry('700x900+90+90')

def random1():
   label["text"] = "Player 1 won!"

def random2():
   label["text"] = "Player 2 won!"

def random3():
   label["text"] = "Player 2 won!"

def random4():
   label["text"] = "Player 1 won!"

label = Label(master, text="2 Player Guessing Game!", font  = "Arial 14")
label2 = Label(master, text="<- P1 P2 ->", font = "Arial 14")
button = Button(master, text=secret_word, font = "Arial 14", command=random1)
button2 = Button(master, text=incorrect, font = "Arial 14", command=random2)
button3 = Button(master, text=incorrect1, font = "Arial 14", command=random2)
button4 = Button(master, text=secret_word, font = "Arial 14", command=random3)
button5 = Button(master, text=incorrect, font = "Arial 14", command=random4)
button6 = Button(master, text=incorrect1, font = "Arial 14", command=random4)
label4 = Label(master, text=hint, font = "Arial 14")
button7 = Button(master, text="Again?", font = "Arial 14", command = umm)
button8 = Button(master, text="Quit", font = "Arial 14", command = quit)

  label.pack()
  label2.pack()
  label4.pack()
  button.pack(side=LEFT)
  button2.pack(side=LEFT)
  button3.pack(side=LEFT)
  button4.pack(side=RIGHT)
  button5.pack(side=RIGHT)
  button6.pack(side=RIGHT)
  button7.pack()
  button8.pack()

  master.mainloop()

В настоящее время мой код показывает, что если Игрок 1 нажмет правильную кнопку на своей стороне, он напечатает Игрок 1, выигранный, и наоборот. Теперь я добавил в дополнительные кнопки «Снова?» и «Выйти». Я также добавил «продолжить». Тем не менее, теперь он говорит, что продолжить не правильно в l oop. Я думал, что, потому что это в mainl oop (), поэтому я могу использовать его. Но теперь это показывает сообщение. Почему?

1 Ответ

0 голосов
/ 21 апреля 2020

Два предложения:

  1. Вы можете получить это слово на random.choice(), это может быть проще.
  2. Не рекомендуется использовать from tkinter import *.

точно так же, как сбросить весь код.

В вашем Приложении сброс означает: изменить the Player x won! на 2 Player Guessing Game!. И использовать random.choice() на создать новую строку и показать ее в кнопке.

Код:

from random import choice
from tkinter import *

def generateRandomWord(): # at first I don't know you need to use index.
    secret_word.set(choice(s_list))
    hint.set(final_dict[secret_word.get()]) # use dict to get the value.
    incorrect.set(choice(s_list))
    incorrect1.set(choice(s_list))

def umm():
    label['text'] = "2 Player Guessing Game!"
    generateRandomWord()

def quit():
    master.destroy()

master = Tk()

secret_word = StringVar() # use StringVar
incorrect = StringVar()
incorrect1 = StringVar()
hint = StringVar()


s_list =   ["apple","book","phone","sheep","ruler","pen","eraser","knife","cement","Google","file","stapler","thermometer","box","glue","yes","no"]
hint_list = ["Fruit","Read","Technology","Animal","Measure Length","Writing","Stationary","Cut  food", "Building Material","Search Engine","Paper organizer","Binding papers together","Temperature","Storage","Attach things together","Approval","Disapproval"]
final_dict = dict(zip(s_list,hint_list)) # generate a dict.
generateRandomWord()
master.title("2 Players Guessing Game!")
master.geometry('700x900+90+90')

def random1():
   label["text"] = "Player 1 won!"

def random2():
   label["text"] = "Player 2 won!"

def random3():
   label["text"] = "Player 2 won!"

def random4():
   label["text"] = "Player 1 won!"

label = Label(master, text="2 Player Guessing Game!", font  = "Arial 14")
label2 = Label(master, text="<- P1 P2 ->", font = "Arial 14")
button = Button(master, textvariable=secret_word, font = "Arial 14", command=random1) # bind textvariable
button2 = Button(master, textvariable=incorrect, font = "Arial 14", command=random2)
button3 = Button(master, textvariable=incorrect1, font = "Arial 14", command=random2)
button4 = Button(master, textvariable=secret_word, font = "Arial 14", command=random3)
button5 = Button(master, textvariable=incorrect, font = "Arial 14", command=random4)
button6 = Button(master, textvariable=incorrect1, font = "Arial 14", command=random4)
label4 = Label(master, textvariable=hint, font = "Arial 14")
button7 = Button(master, text="Again?", font = "Arial 14", command = umm)
button8 = Button(master, text="Quit", font = "Arial 14", command = quit)

label.pack()
label2.pack()
label4.pack()
button.pack(side=LEFT)
button2.pack(side=LEFT)
button3.pack(side=LEFT)
button4.pack(side=RIGHT)
button5.pack(side=RIGHT)
button6.pack(side=RIGHT)
button7.pack()
button8.pack()

master.mainloop()

Вы также можете использовать list для сохранения этих переменных, кнопок и меток. Это уменьшит количество кода.

...