{
field [5, numbers[i]].Value = field [0, i].Value;
}
numbers = new short [9] {6, 0, 5, 8, 1, 4, 3, 2, 7};
// Формирование седьмой строки
for (short i = 0; i <9; i++)
{
field [6, numbers[i]].Value = field [0, i].Value;
}
numbers = new short [9] {3, 4, 7, 0, 5, 8, 2, 6, 1};
// Формирование восьмой строки
for (short i = 0; i <9; i++)
{
field [7, numbers[i]].Value = field [0, i].Value;
}
numbers = new short [9] {1, 7, 0, 5, 6, 2, 8, 4, 3};
// Формирование девятой строки
for (short i = 0; i <9; i++)
{
field [8, numbers[i]].Value = field [0, i].Value;
}
// Переменивание строк/столбцов/регионов
MixHorizontalLines ();
MixVerticalLines ();
MixHorizontalRegions ();
MixVerticalRegions ();
// Освобождение клеток на поле
DeleteNumbersFromField ();
}
// Перестановка строк/столбцов в каждом регионе (блок из трех строк/столбцов)
public void MixHorizontalLines ()
{
Random rand = new Random ();
short line1, line2;
//Переставляем две строки в первой тройке
line1 = (short)(rand.Next (12432) % 3);
line2 = (short)(rand.Next (87457) % 3);
ExchangeValuesOfHorizontalLines (line1, line2);
//Переставляем две строки во второй тройке
line1 = (short)(rand.Next (12432) % 3 +3);
line2 = (short)(rand.Next (87457) % 3 +3);
ExchangeValuesOfHorizontalLines (line1, line2);
//Переставляем две строки в третьей тройке
line1 = (short)(rand.Next (12432) % 3 +6);
line2 = (short)(rand.Next (87457) % 3 +6);
ExchangeValuesOfHorizontalLines (line1, line2);
}
public void ExchangeValuesOfHorizontalLines (short line1, short line2)
{
if (line1!= line2)