#include<stdio.h>#include<conio.h>#include<time.h>#include"consoleout.h"#pragma comment(lib,"consoleout.lib")//板的当前位置int g_nBarX = 4;int g_nBarY = 20;//球的当前位置int g_nBallX = g_nBarX + 4;int g_nBallY = g_nBarY - 2;//速度(g_nBallVx,g_nBallVy)int g_nBallVx = 1;int g_nBallVy = -1;//功能:移动溜板void BarMove(char cC)...{ static int nOldX = g_nBarX; static int nOldY = g_nBarY; if(cC == 'a'||cC == 'A') ...{ g_nBarX = nOldX - 5; } else if(cC == 'd'||cC == 'D') ...{ g_nBarX= nOldX + 5; } //防止出右边界 if(g_nBarX > 58) ...{ g_nBarX = 58; } //防止出左边界 if(g_nBarX < 2) ...{ g_nBarX = 2; } CreateSmWindow("",nOldX,nOldY,10,3,0,0); CreateSmWindow("",g_nBarX,g_nBarY,10,3,14,0); nOldX = g_nBarX;}//功能:绘制小球的弹动void BallMove()...{ static int nOldX = g_nBallX; static int nOldY = g_nBallY; if(g_nBallX == 2||g_nBallX == 76) ...{ g_nBallVx = -g_nBallVx; } if(g_nBallY == 1||g_nBallY== 26) ...{ g_nBallVy = -g_nBallVy; } g_nBallX = nOldX + g_nBallVx; g_nBallY = nOldY + g_nBallVy; MoveCursorTo(nOldX,nOldY); printf(" "); MoveCursorTo(g_nBallX,g_nBallY); printf("●"); nOldX = g_nBallX; nOldY = g_nBallY; MoveCursorTo(0,29); printf("球:位置:(%d,%d)",g_nBallX,g_nBallY); sleep(100);}//功能:判断球与板的位置,如果碰到就反弹球//返回值:改变运行方向void Pop()...{ //判断小球落在板上 if(g_nBarX < g_nBallX && g_nBallX < g_nBarX + 20 && g_nBallY > g_nBarY - 2) ...{ g_nBallVy = -g_nBallVy; } while(g_nBallY>20) ...{ printf("球掉了 "); break; }}void MainLoop()...{ int i; while(1) ...{ if(_kbhit() == 1) ...{ char c = _getch(); if(c ==27) ...{ printf("Game Over! "); break; } BarMove(c); } else if(g_nBallY==20) ...{ MoveCursorTo(18,9); printf("Game Over! "); MoveCursorTo(18,10); printf("请输入0和1选择"); scanf("%d",&i); if(i!=1) ...{ break; } else ...{ BallMove(); Pop(); sleep(5); if(g_nBallY==20) ...{ BallMove(); Pop(); sleep(5); } } } BallMove(); Pop(); sleep(5);} }void main()...{ CreateSmWindow("",0,0,40,28,14,0); MainLoop();} 该程序实现了 一个 小球的 简单碰撞 运行时,需要两个库函数