我知道这行得通,但还有更好的方法吗?
Button clicked = (Button)sender;
if (turn)
{
clicked.Text = player;
}
else {
clicked.Text = cpu;
}
turn = !turn;
最佳答案
当您单击一个按钮时,它的单击事件处理程序将被执行。这会调用您的 tictactoe
函数。在那里,您的代码从上到下执行,首先检查数组中第一个按钮的 .Text
并对其进行调整。然后你的 If..Else block 结束。在下一次单击时重复此操作。这导致了行为。
相反,您应该将 sender
对象转换为 Button
并且只处理它。不需要整个 If..Else
block 。 Sender
是引发事件的对象(此处:单击的按钮)。
public void tictactoe(object sender, EventArgs e)
{
Button b = (Button)sender;
if (string.IsNullOrEmpty(b.Text)) {
b.Text = player;
}
}
之后,您还需要将 player
从 X
翻转到 O
,反之亦然,但您将了解如何执行此操作我估计。 :-)
关于c# - 井字游戏winforms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32325866/