Заставить компьютер нажать кнопку - PullRequest
0 голосов
/ 24 сентября 2018

Я делаю игру в крестики-нолики, используя tkinter для GUI, но моя проблема в том, что у меня есть функция (которая делает ходы) для запуска при каждом нажатии кнопки, она не будет автоматическиход, пока я не нажму кнопку (не имеет значения, какая именно), что, следовательно, заполняет индексирование моих ходов, а также означает, что вы должны нажать, прежде чем компьютер сделает ход.

Есть ли в любом случае, я могу получитьсам «компьютер» притворяется, что нажимает кнопку, и, следовательно, запускает функцию?

Вот бит кнопки «make»:

def make_button(n, row, col):
button_list[n]  = Button(tk,bg='gray', text = " ", fg='white',height=4,width=8,command=lambda:ttt(n, button_list))
button_list[n].grid(row=row,column=col,sticky = S+N+E+W)

, а вот бит «make move» (его стираниеПримите во внимание тот факт, что в настоящее время компьютерный ход будет играть только в середине или в углах):

def computer_move(buttons, index):
 global bclick
 buttons["text"] = "O"
 COM.add(index)
 bclick = True



buttons=StringVar()
bclick = True 
corner_moves = {0,2,6,8}

def ttt(n, buttons):
 global bclick
 if n not in P and n not in COM and bclick == True:
     button_list[n]["text"] = "X"
     P.add(n)
     bclick = False

 elif bclick == False and 4 not in COM and 4 not in P:
     computer_move(button_list[4], 4)

 elif bclick == False: 
     corners_not_COM = (corner_moves.difference(COM))
     corners_not_P_or_COM = (corners_not_COM.difference(P))
     list_corners_not_P_or_COM = list(corners_not_P_or_COM)
     random_corner_index = random.randint(0,len(list_corners_not_P_or_COM))
     random_corner = list_corners_not_P_or_COM[random_corner_index]
     computer_move(button_list[random_corner], random_corner)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...