@lesela

Здравствуйте,в приложенном коде надо сделать так, чтобы при выборе времени в основном окне-менялось время игры в дочернем окно.Как это сделать?

from tkinter.messagebox import *
from tkinter import *
from random import *
from threading import Timer
from tkinter import messagebox
from tkinter import colorchooser

btn=[]
x=0
y=0
k=0
m=0
n = 0
i = 0
t=120
hod=True

def new_window():
global btn,x,y,k,m,n,i,t,hod
window = Toplevel()
window.geometry('320x450')
frame1=Frame(window,bg='white',width=300,height=300,bd=2)
frame1.place(x=10,y=35)
label2=Label(window,font=('Halvetica',12),fg='red')
label2.place(x=50,y=340)
root.iconify()
def update_clock(): ##таймер
global t
t-=1
label.configure(text='Осталось ' + str(t) + ' секунд')
if t<=1:
answer=messagebox.askokcancel("Время истекло","Хотите закончить игру?")
if answer:
root.destroy()
window.destroy()

window.after(1000,update_clock)
label=Label(window,text='Осталось',font=('Halvetica',12),fg='black')
label.place(x=15,y=4)
update_clock()

def schet(event,btn):
global hod,nomer,x1,x2,y1,y2,kol
nomer=event.widget.cget('text')
label2.config(text='')
## btn[nomer]["bg"]="black"

if hod:
x1=nomer%10
y1=nomer//10
hod=False
kol=1
btn[nomer]["bg"]="red"
btn[nomer]["fg"]="black"
btn[nomer]["text"]=str(kol)

else:
x2=nomer%10
y2=nomer//10
print(x2,y2)
if abs(x2-x1)==2 and abs(y2-y1)==1 or abs(x2-x1)==1 and abs(y2-y1)==2:
kol+=1
x1=x2
y1=y2
## btn[nomer]["fg"]="black"
event.widget["bg"]="red"
btn[nomer]["text"]=str(kol)
else:
label2.config(text='Так конь не ходит')

for i in range(10): ##создание игрового поля
for j in range(10):
btn.append(Button(frame1,width=2,text=k,bg='blue',fg="blue"))
btn[k].place(x=x,y=y)
## btn[k]['bg']=color
btn[k].bind('',lambda event:schet(event, btn))
k+=1
x+=30
y+=30
x=0
def choose_c():
window.iconify() ##Выбор цвета цифр
(rgb, c)=colorchooser.askcolor()
window.deiconify()
## btn['bg']=c
for i in range(100):
btn[i]['bg']=c
btn[i]['fg']=c
b=Button(window,width=11,height=1,text='Выбор цвета',command=choose_c)
b.place(x=223,y=340)
label2=Label(window,font=('Halvetica',12),fg='red')
label2.place(x=50,y=340)

def quit_button(): ##кнопка выключения игры
window.destroy()
root.destroy()

konec=Button(window,width=11,height=1,text='Закончить',command=quit_button)
konec.place(x=223,y=370)
##def reset_button(): ##кнопка перезапуска игры
## t=120
## update_clock()
## for i in range(100):
## btn[i]['bg']='blue'
##
##
##reset=Button(root,text='Заново',command=reset_button)
##reset.place(x=230,y=345)
root = Tk()
root.title('Xод конём')
root.geometry('320x450')
btn=[]
root["bg"] = "white"
start_game=Button(root,width=13,height=1,bg="grey",text='Старт',command=new_window)
start_game.place(x=110,y=410)

def sec1():
v=var.get()
if v==0:
t=90
elif v==1:
t=120
elif v==2:
t=180

var=IntVar()
var.set(1)

rad0 = Radiobutton(root,bg='white',font=10,variable=var,value=0,text="90",command=sec1)

rad1 = Radiobutton(root,bg='white',font=10,variable=var,value=1,text="120",command=sec1)

rad2 = Radiobutton(root,bg='white',font=10,variable=var,value=2,text="180",command=sec1)

text2 =Label(root,bg='white',text='Выберите время:')
text2.place(x=160,y=340)

rad0.place(x=155,y=360)
rad1.place(x=205,y=360)
rad2.place(x=260,y=360)

text1 =Label(root,width=21, height=5,fg='black',bg="white",justify=LEFT,text=' Правила игры\n Ход конём:\n За отведеноое время\n Нужно заполнить все поле \n Ходом шахматного коня ')
text1.place(y=280)

root.mainloop()
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы