これがなぜ機能しないのか分かりません。私は探していて何が間違っているのか見当たりません。 。完全な番号がランダムに等しい場合 は入力出力番号はランダムに生成されたに等しいます、あなたは勝つが、私は数字がループを介して第1の時間と等しくされていない場合、彼らは勝ったボタンボタンを押したときにプログラムがクラッシュする - 数字推測ゲーム - Tkinter
from tkinter import *
from tkinter import ttk
import random
master = Tk()
master.title('Guess The Number!')
global answer
global guess_entry
global guess_display
answer = str(random.randint(1000,9999))
guess_counter = 0
def callback():
print('Button pressed')
counter = 0
correct = []
while counter < 4:
if guess_entry.get() == answer:
correct.append('Well done, that is correct')
break
elif guess_entry.get()[counter] == answer[counter]:
correct.append(guess_entry.get[counter])
counter += 1
guess_display['text'] = ' '.join(str(correct))
def Help():
win = Toplevel()
win.title('Help')
l = Label(win, text="Guess a 4 digit number and I will tell you\n what you got right,\n keep trying until you get it in the \ncorrect order with correct numbers")
l.grid(row=0, column=0)
b = Button(win, text="Okay", command=win.destroy)
b.grid(row=1, column=0)
guess_entry = Entry(master)
guess_check = Button(master, text='Guess', command=callback)
guess_display = Label(master,text='_ _ _ _')
help_button = ttk.Button(master, text="?", command=Help,width=3)
guess_entry.grid(row=0,column=2)
guess_check.grid(row=1,column=2)
guess_display.grid(row=2,column=1)
help_button.grid(row=0,column=4)
master.mainloop()
あなたのwhileループは無意味と思われます。そのループの途中でユーザーはデータを入力する機会はありません。 'guess_entry.get()'はループの繰り返しごとにまったく同じものを返すでしょう。 –
@BryanOakley彼らは何かを入力する必要はありません。 – Catmantj
@BryanOakleyオークリーとguess_entry.get()私は、 'guess_entry.get()== answer:'が、数字全体が正しいだけであるかどうかをチェックすることを意味すると仮定します。 – Catmantj