Читаем Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С полностью

//Convert_single_multi: Эта функция преобразует одномерный массив

//в двухмерный

//****************************************************************

void convert_single_multitint A[ARRAY_MAX+1], int В[SIZE][SIZE]) {

 B[0][0] = A[0];

 B[0][1] = A[1];

 B[0][2] = A[2];

 B[0][3] = A[3];

 B[1][0] = A[4];

 B[1][1] = A[5];

 B[1][2] = A[6];

 B[1][3] = A[7];

 B[2][0] = A[8];

 B[2][1] = A[9];

 B[2][2] = A[10];

 B[2][3] = A[11];

 B[3][0] = A[13];

 B[3][2] = A[14];

 B[3][3] = A[15];

}

//********************************************************************

// Try_move: Эта функция позволяет игроку определить некорректность

// своего хода. Если он корректен, то движение выполняется,

// если же некорректен, то выводится соответствующее сообщение

//********************************************************************

void try_move(int move, int row, int col, int array[SIZE][SIZE]) {

 switch(move) {

 case UP:

  if ((row-1 >=0) && (array[row-1][col] == 0))

   swap(row, col, row-1, col, array);

  else display_error(UP);

  break;

 case DOWN:

  if ((row+1 <= SIZE) && (array[row+1][col] == 0))

   swap(row, col, row+1, col, array);

  else display_error(DOWN);

  break;

 case LEFT:

  if ((col-1 >=0) && (array[row][col-1] == 0))

   swap(row, col, row, col-1, array);

  else display_error(LEFT);

  break;

 case RIGHT:

  if ((col+1 < = SIZE) && (array[row][col+1] == 0))

   swap(row, col, row, col+1, array);

  else display_error(RIGHT);

  break;

 }

}

//********************************************************************

//********************************************************************

//Swap: Эта функция заменяет два значения двухмерным массивом.

//********************************************************************

void swap(int row, int col, int new_row, int new_col, int array[SIZE][SIZE]) {

 int temp;

 temp = array[row][col];

 array[row][col] = array[new_row][new_col];

 array[new_row][new_col] = temp;

}

//********************************************************************

//Swap2: Эта функция заменяет два значения одномерным массивом.

//********************************************************************

void swap2(int from, int to, int array[ARRAY_MAX+1]) {

 int temp = array[from];

 array[from] = array[to];

 array[to] - temp;

}

//********************************************************************

//ERROR: Эта функция выводит сообщения об ошибке

//********************************************************************

void display_error(int n) {

 LCD_Output("ERROR: ");

 switch(n) {

 case LEFT:

  LCD_output("no move L");

  break;

 case RIGHT:

  LCD_output("no move R");

  break;

 case UP:

  LCD_output("no move U");

  break;

 case DOWN:

Перейти на страницу:

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных