首页 > 解决方案 > C#井字游戏/字体和数组

问题描述

在井字游戏中,程序适用于水平和垂直,但不适用于对角线。我认为那private bool checkWin部分是错误的。

private bool checkWin()
{
    for (int row=0; row<3; row++)
    {
        if (values[row,0] != ' ' && values[row,0]==values[row,1]&&values[row,0]==values[row, 2])
        {
            lockButton(false);
            return true;
        }
    }
    for (int col = 0; col < 3; col++)
    {
        if (values[0, col] != ' ' && values[0, col] == values[1, col] && values[0, col] == values[2, col])
        {
            lockButton(false);//asdfasdfsdafadsfasdfasdfasdf
            return true;
        }
    }
    return false;
}

标签: c#arrays

解决方案


也许您可以尝试在第二个 for 和 return false 之间添加类似这样的内容:

if (values[0, 0] != ' ' && values[0, 0] == values[1, 1] && values[0, 0] == values[2, 2])
{
    lockButton(false);
    return true;
}else if(values[0, 2] != ' ' && values[0, 2] == values[1, 1] && values[0, 2] == values[2, 0])
{
    lockButton(false);
    return true;
}

第一个用于 0,0 到 2,2 的对角线,第二个用于 0,2 到 2,0


推荐阅读