井字游戏获胜
本文关键字:获胜 游戏 | 更新日期: 2023-09-27 18:10:43
我明白这是有效的,但有没有更好的方法来做到这一点?
Button clicked = (Button)sender;
if (turn)
{
clicked.Text = player;
}
else {
clicked.Text = cpu;
}
turn = !turn;
当你点击一个按钮时,它的点击事件处理程序被执行。这调用tictactoe
函数。在那里你的代码是从上到下执行的,它首先检查数组中第一个按钮的.Text
并对其进行调整。然后你的If..Else块结束。在下一个点击中重复这个过程。这将导致以下行为:
相反,您应该将sender
对象强制转换为Button
,并且只处理此对象。不需要整个If..Else
块。Sender
是引发事件的对象(这里是被点击的按钮)。
public void tictactoe(object sender, EventArgs e)
{
Button b = (Button)sender;
if (string.IsNullOrEmpty(b.Text)) {
b.Text = player;
}
}
之后,您还需要将player
从X
翻转到O
,反之亦然,但我认为您将了解如何做到这一点。: -)
将字体改为:
public void tictactoe(object sender, EventArgs e)
{
var button = (Button)sender;
if (button.Text == "")
button.Text = player;
}