import tkinter
import tkinter.messagebox
import random
num_play = 0
num_list = [1,2,3,4]
def random_list():
global num_list
a = [i for i in range(10)]
x1 = random.choice(a)
a.remove(x1)
x2 = random.choice(a)
a.remove(x2)
x3 = random.choice(a)
a.remove(x3)
x4 = random.choice(a)
a.remove(x4)
num_list = [x1, x2, x3, x4]
reminder_list = []
zuofei_list = []
def compare():
global num_play
global num_list
global reminder_list
global zuofei_list
try:
i_1, i_2, i_3, i_4 = map(int, text.get())
input_num = [i_1, i_2, i_3, i_4]
set_input = list(set(input_num))
except ValueError:
tkinter.messagebox.showinfo('警告', '错误输入')
if len(set_input) != len(input_num):
tkinter.messagebox.showinfo('警告', '有重复数字,第{}次结果作废。'.format(num_play+1))
zuofei_list.append(num_play+1)
A = 0
B = 0
for i, j in enumerate(input_num):
for m, n in enumerate(num_list):
if j == n:
if i == m:
A += 1
else:
B += 1
tkinter.messagebox.showinfo('结果:','%dA%dB'%(A,B))
num_play += 1
tkinter.messagebox.showinfo('警告', '玩的次数:{}'.format(num_play))
# tkinter.messagebox.showerror('答案', '%d%d%d%d' % (num_list[0], num_list[1], num_list[2], num_list[3]))
if A==4 and B==0:
tkinter.messagebox.showinfo('恭喜:', '你猜对了\n正确答案是%d%d%d%d'% (num_list[0], num_list[1], num_list[2], num_list[3]))
tkinter.messagebox.showinfo('提醒:', '你猜对了,请点击更新以重来更改四位随机数,或退出游戏。')
reminder_list = []
if num_play == 8:
tkinter.messagebox.showinfo('答案是:','答案是:%d%d%d%d' % (num_list[0], num_list[1], num_list[2], num_list[3]))
tkinter.messagebox.showinfo('提醒:', '你已经玩了八次了,请点击更新以更新四位随机数以重来,或退出')
num_play = 0
reminder_list = []
reminder_list.append('%dA%dB'%(A,B))
tkinter.messagebox.showinfo('经验',"这是结果列表:{},这是作废列表:{}".format(reminder_list,zuofei_list))
# print("%dA%dB" % (A, B))
# print(num_list)
shuzi = tkinter.Tk()
#生成主窗口
shuzi.title('猜数字游戏') #主窗口加标题
shuzi.geometry('1200x1200')
# 建立一个文本,设置字的颜色,内容,字的字体、大小
label1 = tkinter.Label(shuzi, fg='black', text="猜数字", font=('宋体', 35, 'bold'))
# 设置文本框的位置
label1.grid(padx=0)
label2 = tkinter.Label(shuzi, fg='black', text="游戏规则:\n输入没有重复数字的四位数字", font=('宋体', 15, 'bold'))
label2.grid(padx=10, pady=10)
label3 = tkinter.Label(shuzi, fg='black', text="请输入你所猜测的四位数字:", font=('宋体', 15, 'bold'))
label3.grid(padx=10, pady=10)
text = tkinter.Entry(shuzi)
text.grid(padx=100)
# 建立一个按钮,command:通过按钮触发比较函数
button1 = tkinter.Button(shuzi, text='输入非重复四位数字',command=compare, width=20, font=('微软雅黑', 10,))
# 设置按钮的位置
button1.grid(padx=10,pady=10)
# 建立一个按钮,command:通过按钮触发界面退出,bg是背景颜色
button2 = tkinter.Button(shuzi, text='更新',command=random_list, width=10, bg='yellow', font=('微软雅黑', 10,))
button2.grid(padx=10,pady=10)
# 设置主窗口的大小
button3 = tkinter.Button(shuzi, text='退出游戏',command=shuzi.quit, width=10, bg='yellow', font=('微软雅黑', 10,))
button3.grid(padx=10,pady=10)
shuzi.mainloop()