因此,我正在使用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';