我希望它保存。它应该被禁用,不应该改变,但它会改变



我点击了第一个

然后我点击了第二个,但他们没有保持不变。第二个是正确的,但第一个是空的

当我点击另一个按钮时,小部件发生了变化,第一个按钮被重置为正常

from ipywidgets import *
from IPython.display import *

输出功能没有完成其工作

out = Output()
b1 = Button()
b1.style.button_color = 'black'
b2 = Button()
b2.style.button_color = 'black'
b3 = Button()
b3.style.button_color = 'black'
b4 = Button()
b4.style.button_color = 'black'
b5 = Button()
b5.style.button_color = 'black'
b6 = Button()
b6.style.button_color = 'black'
b7 = Button()
b7.style.button_color = 'black'
b8 = Button()
b8.style.button_color = 'black'
b9 = Button()
b9.style.button_color = 'black'
board = HBox([VBox([b1,b2,b3]),VBox([b4,b5,b6]),VBox([b7,b8,b9])])
user1name = Text()
user2name = Text()
user1turn = widgets.Text(value="turn",description=user1name.value+':',disabled=False)
user2turn = widgets.Text(value="",description=user1name.value+':',disabled=False)
user1 = "turn"
user2 = ""
userturn = 1

我在做井字游戏,但我遇到了一个问题

def u1nc(self):
out.clear_output()
with out:
print("enter ❌ player's name:")
display(user1name)
def onsumbitu1(self):
out.clear_output()
user1name.disabled = True
with out:
print("enter ⭕ player's name:")
display(user2name)

def onsubmitu2(self):
out.clear_output()
user2name.disabled = True
with out:
display(board)
def turnchooser(self):
global userturn
if userturn == 1:
user2 = "turn"
user1 = ""
userturn = 2
elif userturn == 2:
user1 = "turn"
user2 = ""
userturn = 1
else:
out.clear_output
print("game over")
def b1func(self):
if userturn == 1:
out.clear_output()
b1 = Button(description='❌',disabled=True)
b1.style.button_color = "black"
board =HBox([VBox([b1,b2,b3]),VBox([b4,b5,b6]),VBox([b7,b8,b9])])
with out:
display(board)
out
elif userturn == 2:
b1 = Button(description='⭕',disabled=True)
b1.style.button_color = 'black'
board = HBox([VBox([b1,b2,b3]),VBox([b4,b5,b6]),VBox([b7,b8,b9])])
with out:
display(board)
out

def b2func(self):
if userturn == 1:
out.clear_output()
b2 = Button(description='❌',disabled=True)
b2.style.button_color = "black"
board = HBox([VBox([b1,b2,b3]),VBox([b4,b5,b6]),VBox([b7,b8,b9])])
with out:
display(board)
out
elif userturn == 2:
out.clear_output()
b2 = Button(description='⭕',disabled=True)
b2.style.button_color = 'black'
board =     HBox([VBox([b1,b2,b3]),VBox([b4,b5,b6]),VBox([b7,b8,b9])])
with out:
display(board)
out

井字游戏还没有完成

user1name.on_submit(onsumbitu1)
user2name.on_submit(onsubmitu2)

out.on_displayed(u1nc)
b1.on_click(b1func)
b1.on_click(turnchooser)
b2.on_click(b2func)
b2.on_click(turnchooser)

它不应该改变,但它会

out

没有错误代码,小部件只是在更改b1和b2正在改变

使用全局变量,我可以解决这个问题

最新更新