嗨, 我正在使用Visual Studio Winforms,我正在尝试构建井字棋。 我被卡在检查球员赢的方法。 我试图在激活时做到这一点。小例子:如何检查玩家是否在井字棋游戏中获胜?
private void StartForm_Activated(object sender, EventArgs e)
{
if ((_pcb1.Image == imagecircle) && (_pcb2.Image == imagecircle) && (_pcb3.Image == imagecircle))
{
MessageBox.Show("You Win!");
}
if ((_pcb4.Image == imagecircle) && (_pcb5.Image == imagecircle) && (_pcb6.Image == imagecircle))
{
MessageBox.Show("You Win!");
}
if ((_pcb7.Image == imagecircle) && (_pcb8.Image == imagecircle) && (_pcb9.Image == imagecircle))
{
MessageBox.Show("You Win!");
}
}
(我知道,有更多的情况下取胜)。 它从来没有进入方法,我试图找到一种方法,总是在表单打开时激活。请帮助:)
你的方法在如此多的层面上是错误的!您需要保留一个表示电路板当前状态的模型对象。无论何时将图像放在电路板上,都要用相应的项目标记模型(十字形或圆形)。在模型类中创建一个方法来确定谁赢了(如果有的话)。在每次移动后调用此方法来决定下一步做什么(显示消息框或等待下一步移动)。 – dasblinkenlight
你不想钩住'Activated'。取而代之的是,在玩家点击时在同一个地方设置X或O来检查胜利。 – wablab