Чтение онлайн

ЖАНРЫ

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

Пак Дэниэл Дж.

Шрифт:

 int = 0;

 int n;

 for (i=0; i<ARRAY_MAX+1; i++) {

n = board_array[i];

int2char(n);

 }

 LCD_output("\n");

}

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

// display_board: Выводит табло как массив 4x4

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

void display_board(int A[SIZE][SIZE], int row, int col, int direction) {

#pragma abs_address 0x0800

 int i;

 int j;

 int num;

#pragma end_abs_address

 newline;

 LCD_output("| Column ");

 LCD_output("| 1 2 3 4 ");

 LCD_output("-------------------");

 for (i=0; i < SIZE; i++) {

j=0;

switch(i) {

case 0:

LCD_output("R 1 |");

break;

case 1:

LCD_output("o 2 |");

break;

case 2:

LCD_output("w 3 |");

break;

case 3:

LCD_output(" 4 |");

break;

}

for (j=0; j < SIZE; j++) {

num = A[i][j];

if (num == 0) LCD_output(" ");

else int2char(num);

if ((i+1 == row) && (j+1) == col))

LCD_output("*");

else LCD_output(" ");

}

 }

 newline;

 LCD_output("You are at (R,C)");

 LCD_output(" (");

 int2char(row);

 LCD_output(",");

 int2char(col);

 LCD_output(") =");

 int2char(A[row-1];

 LCD_output(" ");

 newline;

}

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

// INT2CHAR:
задается как integer и выводится на ЖКД в виде

// двух символов

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

void int2char(int i) {

 if (i > 9) {

LCD_output("I");

i -= 10;

 } else {

LCD_output('; ");

 }

 switch(i) {

 case 0:

LCD_output("0");

break;

 case 1:

LCD_output("1");

break;

 case 2:

LCD_output("2");

break;

 case 3:

LCD_output("3");

break;

 case 4:

LCD_output("4");

break;

 case 5:

LCD_output("5");

break;

 case 6:

LCD_output("6");

break;

 case 7:

LCD_output("7");

break;

 case 8:

LCD_output("8");

break;

 case 9:

LCD_output("9");

break;

 }

}

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

//Check_Win:
Эта функция проверяет соответствие текущего положения ситуации

// победы при победе win - 1, в остальных случаях - 0

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

int check_win(int array[ARRAY_MAX+1]) {

 int i;

 int win = 1;

 for (i=0; i<ARRAY_MAX+1; i++) {

if (array[i] != win_array[i]) win = 0;

 }

 return win;

}

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

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

//в одномерный

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

int convert_multi_single(int A[SIZE][SIZE], int В[ARRAY_MAX+1]) {

 int n = 0;

 int i = 0;

 int j = 0;

 for (i=0; i<SIZE; i++) {

for (j=0; j<SIZE; j++) {

B[n] = A[i][j] ;

n++;

}

 }

}

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

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

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

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

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

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

Поделиться с друзьями: