2015-08-12 3 views
1

Проблема в том, что эта матрица показывает один знак, повторенный 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

В чем ваш вопрос? что вы имеете в виду под одним знаком, повторяется три раза? – Akansha

+0

Как это исправить, мне нужно только показывать знаки 2 раза. – Lune

ответ

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].

+0

спасибо, что так сильно это исправить мою проблему. еще раз спасибо – Lune

0

Как я понимаю, вы разрабатываете игру «найти пару» для обучения памяти? Мне хотелось бы переработать алгоритм переделки. U может использовать этот оператор для создания небольших случайных чисел: 1) int randomNumber = DateTime.Now.Ticks % 4 или 2) int randomNumber = rand.Next(100000) % 4;

ПРИМЕЧАНИЕ: Если и хотите получить помощь с алгоритмом переделка, я могу помочь и.

+0

Да, я разрабатываю «Найди пару», спасибо за помощь и предложение, но я хочу создать без помощи, если это возможно. – Lune

Смежные вопросы