justify">} win ();// функція відповідає за побду гравця//
void start_settings ();// базові настройки//
void floor_reflect ();// віддзеркалення кулі від екрану//border ();// межі по середині//draw_border ();// межа навколо поля//draw_score_l ();// Промальовує окуляри лівого//draw_score_r ();// і правого гравця//
} player; ball {: x;// координати кулі//y;// координати кулі//vx;// швидкість кулі//vy;// швидкість кулі//move () {// рух кулі//
x +=vx;// по х//+=vy;// по y//
} reflection ();// Віддзеркалення кулі від пластин//
void draw_ball ();// малюємо наш куля//
} pong_ball; reflector {// пластини //: x;// координати пластини//y;// координати пластини//vy;// швидкість пластини//
int size;// розмір пластини//
reflector () {
x=0;
y=0;
vy=0;=250;// розмір пластини//
} draw_r ();// малюємо пластину//move ();
} left, right;// ліва, права пластина//reflector :: draw_r () {// малює пластину відображає куля//
glVertex2f (x + 10, y + size/2); f (x + 10, y - size/2); f (x - 10, y - size/2); f (x- 10, y + size/2);
} ball :: reflection () {// функція відбивача//((x lt; left.x + 10) amp; amp; (fabs (double (y - left.y)) lt ; left.size/2)) {vx=-vx; vy +=left.vy * 1;}/*
x lt; left.x + 10 куля досягає пластину (double (y - left.y) порівнює відстань по у від кулі до центру пластіни.size/2 розмір пластини попалам
якщо fabs (double (y - left.y) gt; left.size/2, то куля проходить міміо пластини
якщо fabs (double (y - left.y) lt; left.size/2, то куля вдаряється об пластину=-vx його швидкість змінюється на протилежну
коефіцієнт ковзання */((x gt; right.x - 10) amp; amp; (fabs (double (y - right.y)) lt; right.size/2)) {vx =-vx; vy +=right.vy * 1;}
} ball :: draw_ball () {// промальовування кулі//f (1, (rand ()% 10)/10, (rand ()% 10)/10); f (x + 10 + rand ()% 7, y + 10 + rand ()% 7); f (x + 10 + rand ()% 7, y - 10 + rand ()% 7); f (x - 10 + rand ()% 7, y - 10 + rand ()% 7); f (x - 10 + rand ()% 7, y + 10 + rand ()% 7);
glColor3f (0,0,0);
} game :: floor_reflect () {// відбиття від верхньої та нижньої межі//
if ((pong_ball.y lt; -player.winhei) || (pong_ball.y gt; player.winhei)) pong_ball.vy=-pong_ball.vy;/*
якщо координати кулі pong_ball.y менше координат негативною кордону-player.winhei,
то куля змінює швидкість на протилежну pong_ball.vy=-pong_ball.vy
якщо pong_ball.y gt; player.winhei, то pong_ball.vy=-pong_ball.vy */
} game :: start_settings () {. x=- 710;//координати відбивача по х//
right.x=710;//координати відбивача по у//
int i=rand ()% 2; (i == 0) pong_ball.vx=7;// базова швидкість по х//
if (i == 1) pong_ball.vx=- 7;// швидкість відбитого кулі//_ ball.vy=0;// базова швидкість по у//_ ball.x=0;// координати кулі//_ ball.y=0;// координати кулі//
} game :: border () {// промальовування кордону між правою і лівою частиною//
glColor4f (0,1,0,0); f (- 2,800); f (2,800); f (2, - 800); f (- 2, - 800); f (1 , 1,1);
} game :: draw_border () {// промальовування межі навколо поля//
glColor3f (0.1,0.8,0.1); f (810,810); f (800,810); f (800, - 810); f (810, - 810); f (1,1,1 ); f (0.1,0.8,0.1,0); f (810,810); f (810,800); f (- 810,800); f (- 810,810); f (1,1,1); f (0.1,0.8, 0.1,0); f (- 810, - 810); f (- 810,810); f (- 800,810); f (- 800, - 810); f (1,1,1); f (0.1,0.8, 0.1,0); f (- 810, - 810); f (810, - 810); f (810, - 800); f (- 810, - 800); f (1,1,1);
} reflector :: move () {// пересування платформ//((y gt;=-player.winhei + size/2) amp; amp; (y lt;=player.winhei -size/2)) {y +=vy;}//рух платформ//((y lt; -player.winhei + size/2)) {y=-player.winhei + size/2; vy=0;}/* сталкновеніе платформ
з верхньою межею */((y gt; player.winhei - size/2)) {y=player.winhei - size/2; vy=0;}/* сталкновеніе платформ
з нижньою межею */
} game :: win () {(pong_ball.x lt; left.x) {// куля вийшов за межі лівої платформи //. start_settings ();// обнулення налаштувань Іри, гра починається сача//_ right ++;// правої платформі додається одне очко//
} (pong_ball.x gt; right.x) {// куля вийшов за межі правої платформи //. start_settings ();// обнул...