Программирование для мобильных платформ. Windows Phone. Иван Трещев. Читать онлайн. Newlib. NEWLIB.NET

Автор: Иван Трещев
Издательство: Издательские решения
Серия:
Жанр произведения: Прочая образовательная литература
Год издания: 0
isbn: 9785449368690
Скачать книгу
[i, j].Square = 2;

      }

      else if (i <3 && j <9)

      {

      field [i, j].Square = 3;

      }

      else if (i <6 && j <3)

      {

      field [i, j].Square = 4;

      }

      else if (i <6 && j <6)

      {

      field [i, j].Square = 5;

      }

      else if (i <6 && j <9)

      {

      field [i, j].Square = 6;

      }

      else if (i <9 && j <3)

      {

      field [i, j].Square = 7;

      }

      else if (i <9 && j <6)

      {

      field [i, j].Square = 8;

      }

      else if (i <9 && j <9)

      {

      field [i, j].Square = 9;

      }

      }

      }

      // Чтение сохраненных данных

      ReadData ();

      // Поиск повторов

      SearchRepeats ();

      }

      // Генерация поля

      public void Generate ()

      {

      for (short i = 0; i <9; i++)

      {

      for (short j = 0; j <9; j++)

      {

      field [i, j].Standard = false;

      field [i, j].Repeat = false;

      }

      }

      time = 0;

      Random rand = new Random ();

      numbers = new short [9] {1, 2, 3, 4, 5, 6, 7, 8, 9};

      // Рандомное формирование первой стороки

      for (short i = 0; i <9; i++)

      {

      short tempRand = (short)(rand.Next (45689) % (9 – i));

      field [0, i].Value = numbers [tempRand];

      for (short j = tempRand; j <9 – i – 1; j++)

      {

      numbers [j] = numbers [j +1];

      }

      }

      // Формирование строк согласно перестановкам

      numbers = new short [9] {8, 3, 4, 6, 7, 0, 5, 1, 2};

      // Формирование второй строки

      for (short i = 0; i <9; i++)

      {

      field [1, numbers[i]].Value = field [0, i].Value;

      }

      numbers = new short [9] {5, 6, 8, 2, 0, 7, 1, 3, 4};

      // Формирование третьей строки

      for (short i = 0; i <9; i++)

      {

      field [2, numbers[i]].Value = field [0, i].Value;

      }

      numbers = new short [9] {2, 8, 6, 4, 3, 1, 7, 0, 5};

      // Формирование четвертой строки

      for (short i = 0; i <9; i++)

      {

      field [3, numbers[i]].Value = field [0, i].Value;

      }

      numbers = new short [9] {7, 5, 3, 1, 2, 6, 4, 8, 0};

      // Формирование пятой строки

      for (short i = 0; i <9; i++)

      {

      field [4, numbers[i]].Value = field [0, i].Value;

      }

      numbers = new short [9] {4, 2, 1, 7, 8, 3, 0, 5, 6};

      // Формирование шестой строки

      for (short i = 0; i <9; i++)

      {

      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