有人可以帮我修复这个随机矩阵

时间:2015-08-12 05:26:05

标签: c# memory matrix

问题是这个矩阵显示一个符号重复3次,我只需要显示符号2次, 如果有人可以帮助我会很棒。 我需要这个用于记忆游戏。

Random rand = new Random();

string[,] Matrix = { { "!", "!", "@", "@" }, { "$", "$", "#", "#" }, { "%", "%", "^", "^" }, { "&", "&", "*", "*" } };

int row = 0;
int column = 0;

int row2 = 0;
int column2 = 0;

for (int inc = 0; inc < 51; inc++)
{
    row2 = rand.Next(4);
    column2 = rand.Next(4);

    Matrix[row, column] = Matrix[row2, column2];

    row = row2;
    column = column2;
}


Console.WriteLine("\n\n\n       {0} |  {1} |  {2} |  {3}", Matrix[0, 0], Matrix[0, 1], Matrix[0, 2], Matrix[0, 3]);
Console.WriteLine("     ----|----|----|----");
Console.WriteLine("       {0} |  {1} |  {2} |  {3}", Matrix[1, 0], Matrix[1, 1], Matrix[1, 2], Matrix[1, 3]);
Console.WriteLine("     ----|----|----|----");
Console.WriteLine("       {0} | {1} | {2} | {3}", Matrix[2, 0], Matrix[2, 1], Matrix[2, 2], Matrix[2, 3]);
Console.WriteLine("     ----|----|----|----");
Console.WriteLine("       {0}|  {1}|  {2}|  {3} \n", Matrix[3, 0], Matrix[3, 1], Matrix[3, 2], Matrix[3, 3]);
Console.ReadLine();

2 个答案:

答案 0 :(得分:1)

作为快速解决方案,您可以替换以下代码:

Matrix[row, column] = Matrix[row2, column2];

char c = Matrix[row, column];
Matrix[row, column] = Matrix[row2, column2];
Matrix[row2, column2] = c;

在您的原始代码中,您将失去Matrix[row, column]处的值,而您必须将其与[row2, column2]处的值互换。

答案 1 :(得分:0)

据我了解,你正在开发&#34;找到这对&#34;记忆训练游戏? 我想推荐你的返工算法。 你可以使用这个语句来生成小的随机数: 1)     int randomNumber = DateTime.Now.Ticks % 4 要么 2)     int randomNumber = rand.Next(100000) % 4;

注意:如果你想获得重新算法的帮助,我可以帮助你。