С для профессиональных программистов



         

Полный текст программы игры TAG. - часть 3


/* вывод на экран спрайта компьютера */

if(!swapc) display_object(computer, 4, 3);

else                      display_object(computer2, 4, 3);

if(count) count--;

while (key.c[0] !='q' && htime<999 && ctime<999);

getchar();

mode(2);

if(ctime>htime)

printf("Компьютер выиграл!");

else

printf("Вы победили!");

/* Вывод на экран терминала счета */

void shou_score(it, htime, ctime)

int it;

long htime, ctime;

goto_xy(24, 6);

if(it==COMPUTER)

printf("ВЫ:%ld", htime);

else

printf("вы:%ld", htime);

goto_xy(24, 26);

if(it==HUMAN)

printf("Я:%ld", ctime);

else

printf("я:%ld", ctime);

/* Выбор палитры */

void palette(pnum)

int pnum;

union REGS r;

r.h.bh = 1; /* код 4-го графического режима */

r.h.bl = pnum;

r.h.ah = 11;

int86(0x10, &r, &r);

/* Выбор режима */

void mode(mode_code)

int mode_code;

union REGS r;

r.h.al = mode_code;

r.h.ah = 0;

int86(0x10, &r, &r);

/* изображение линии заданного цвета с использованием

алгоритма Брезенхама */

void line(startx,starty,endx,endy,color)

int startx,starty,endx,endy,color;

register int t,distance;

int x=0,y=0,delta_x,delta_y;

int incx,incy;

/* вычисление расстояния в обоих направлениях                                                      */

delta_x=endx-startx;

delta_y=endy-starty;

/* определение  направления  шага,  шаг  вычисляется  либо   по

вертикальной,  либо  горизонтальной  линии */

if (delta_x>0) incx=1;

else if (delta_x==0) incx=0; else incx=-1;

if (delta_y>0) incy=1;

else  if (delta_y==0) incy=0;

else  incy=-1;

/* определение какое расстояние больше */

delta_x=abs(delta_x);

delta_y=abs(delta_y);

if (delta_x>delta_y) distance=delta_x;

else distance=delta_y;

/* изображение линии */

for (t=0; t<=distance+1; t++)

mempoint(startx,starty,color);

x+=delta_x;

y+=delta_y;

if (x>distance)

x-=distance;




Содержание  Назад  Вперед