因此,我正在使用 unity,并且我有一个包含井字棋盘当前状态的字符串。看起来像这样:
XOX
ONX
OXX
“N”是一个中性空间。
问题是我想用“X”或“O”替换其中一个“N”。 我尝试使用:
board[n] = "X";
但是我明白了
"property or indexer cannot be assigned, it is read only"
所以我想找到一种方法来改变其中一个“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';
关于c# - 替换字符串中的单个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42463527/