//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: