c# - 替换字符串中的单个字符

标签 c# string unity3d tic-tac-toe

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

相关文章:

从 C 中的文本文件复制所需的字符串

android - URI 生成器结果中有一个意外的冒号(Android 编程)

javascript - 在 Unity 中使用的最佳容器容器是什么?

android - 在unity3D android中本地保存大量数据的最佳方法?

c# - 在 .NET 中进行文本到语音转换的一些好的资源是什么?

c# - 使用C#获取Azure服务器中的所有数据库

c# - 声明 C# 属性

c# - 控制台项目和winforms项目在同一个解决方案中

python - 如何在python中格式化字符串的一部分?

unity3d - 如何使 map 的边界和该 map 的平移相同?