因此,我正在使用unity,并且我有一个包含井字游戏板当前状态的字符串。看起来像这样:

XOX
ONX
OXX


“ N”是一个中性空间。

问题是我想用“ X”或“ O”代替那些“ N”。
我尝试使用:

board[n] = "X";


但我明白了


  “无法分配属性或索引器,它是只读的”


因此,我试图找到一种方法来更改其中一个“ N”。这是我的代码

if (manager.turn == 1 && !isUsed)
{
    xSprite.enabled = true;
    manager.board[int.Parse(gameObject.name)-1] = 'X';
    manager.GameEndingDraw();
    isUsed = true;
    manager.turn = 2;
}
else if (manager.turn == 2 && !isUsed)
{
    oSprite.enabled = true;
    manager.board[int.Parse(gameObject.name)-1] = 'O';
    manager.GameEndingDraw();
    isUsed = true;
    manager.turn = 1;
}

最佳答案

井字游戏板不是字符串,而是3×3的标记网格,例如字符。您应该将其表示为数组,而不是字符串:

var board = new char[3, 3];
for (int i = 0; i < board.GetLength(0); i++)
    for (int j = 0; j < board.GetLength(1); j++)
        board[i, j] = 'N';


然后,您可以通过其坐标设置每个标记:

board[0, 0] = 'X';

09-15 19:11