/*
程序第一部分,对于此文件中要用的库函数,必须先在此处引用库函数所在的库文件
*/
#include//因为用到了输出函数,所以必须引用此库文件
#include//因为用到了图形点面处理函数,所以必须引用此库文件 ,COORD和SetConsoleCursorPosition函数
此文件里的全局变量定义,
在这里定义了3个数组,可以理解为搭建一个跑道需要的3个因素
数组a为跑道,数组b和数组c为两条跑道,
但在下文的程序中,两条跑道并没有是这两个数组,
而是直接用'-'来代替
char a[100]={};
char b[100]={};
char c[100]={};
字符变量d就是我们抽象出来的运动员,下文程序直接将抽象出来的d指向了运动员'T'
char d='T';
show函数用来在屏幕"画"出一个跑道 ,画字上面打引号,是说并不是真正的画,而是通过
程序将我们想要看到的跑道的样式,用字符填充上去,每一个字符实际上填充的是屏幕上的一个坐标点
例:
跑道的样式如下:
start---------------end
start end
横坐标0,1,2,3,4..............
纵坐标0,1,2
void show()
{
int i,j;
/*
1、画出第一条跑道线
*/
printf("start");
for(i=0;i<100;i++)
{
printf("%c",'-');
}
printf("end\n");
2、画出跑道,实际上跑道上输出空字符填充
printf("start");
printf("%c",a[i]);
3、画出第二条跑道线
}
1、此函数的功能是根据需要在指定位置填充字符,在本程序里,COORD是位置类型,
通过COORD来定义一个抽象的变量pos, pos.X为横坐标,pos.Y为纵坐标
2、 SetConsoleCursorPosition函数为winodw.h里的库函数,将我们要填充的值直接填充到
指定位置里(就是第2个参数的值)
3、注意: SetConsoleCursorPosition函数指定了我们要操作的那个位置(坐标点),并不是直接填充值
void postion(int x,int y)
COORD pos;
pos.X=x;
pos.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
int main()
int i,j;
show();
/*
for循环为什么从6开始,这是有问题的,可以调整
通过循环实现字符T从最开始的位置跑道结束位置,如果循环到10?20?30?,应该在中间
位置就停住了
for循环里,i的值实际上就是横坐标从小到大值的变化
*/
for(i=6;i<105;i++)
{
postion(i,1);//问题:为什么 postion函数的第2个参数始终为1?
printf("%c",d);//通过printf连填充值
Sleep(1000);//通过sleep函数来进行延时操作
}
return 0;
问题:
1、如何能画出多条跑道?
2、多人比赛情况下,如何定义运动员?
3、大家可以自行查一下随机数函数,尝试用随机数函数来得到随机数,
通过随机数对应不同的时间,来实现两个运动员的竞赛,下节课我们会分享一下这部分内容
举报/反馈