【发布时间】:2021-01-12 18:34:19
【问题描述】:
我正在尝试在 Python 中使用 TKinter 制作井字游戏。我想创建一个函数,它根据我在其目录中找到的__str__() 属性更改按钮值及其在我的另一个二维数组中的相应位置。这是我的功能:
def changed_based_on_id(self,btn):
if btn.__str__() == '.!button' and btn['text'] == '':
self.ld['text'] = 'X' if self.p1turn else 'O'
self.board[0][0] = 'X' if self.p1turn else 'O'
self.turn()
elif btn.__str__() == '.!button2' and btn['text'] == '':
self.tc['text'] = 'X' if self.p1turn else 'O'
self.board[0][1] = 'X' if self.p1turn else 'O'
self.turn()
elif btn.__str__() == '.!button3' and btn['text'] == '':
self.rd['text'] = 'X' if self.p1turn else 'O'
self.board[0][2] = 'X' if self.p1turn else 'O'
self.turn()
elif btn.__str__() == '.!button4' and btn['text'] == '':
self.cl['text'] == 'X' if self.p1turn else 'O'
self.board[1][0] = 'X' if self.p1turn else 'O'
self.turn()
elif btn.__str__() == '.!button5' and btn['text'] == '':
self.c['text'] == 'X' if self.p1turn else 'O'
self.board[1][1] = 'X' if self.p1turn else 'O'
self.turn()
elif btn.__str__() == '.!button6' and btn['text'] == '':
self.cr['text'] == 'X' if self.p1turn else 'O'
self.board[1][2] = 'X' if self.p1turn else 'O'
self.turn()
elif btn.__str__() == '.!button7' and btn['text'] == '':
self.bld['text'] == 'X' if self.p1turn else 'O'
self.board[2][0] = 'X' if self.p1turn else 'O'
self.turn()
elif btn.__str__() == '.!button8' and btn['text'] == '':
self.bc['text'] == 'X' if self.p1turn else 'O'
self.board[2][1] = 'X' if self.p1turn else 'O'
self.turn()
elif btn.__str__() == '.!button9' and btn['text'] == '':
self.brd['text'] == 'X' if self.p1turn else 'O'
self.board[2][2] = 'X' if self.p1turn else 'O'
self.turn()
print(self.board)
else:
pass
当我尝试按下前三个以外的按钮时,按钮上的值不会改变,但二维数组位置会改变。我做错了什么吗?好像没找到。
提前致谢!
【问题讨论】:
标签: python tkinter tic-tac-toe