#include <stdio.h>
#include <time.h>
#include <windows.h>
//1.宏定义:作用在本文件中,经常用的数据定义为全局
#define LENGTH 60 //跑道长度 宏参 宏值 不用申请内存
#define HORSENUM 6 //赛马数量
#define MINSTEP 1 //最小的单步距离
#define MAXSTEP 10 //最大的单步距离
void Play(int s[])
{
int rank = 1; //名次,初始化为1,因为最小的就是1
int dis[HORSENUM]={0}; //记录各匹赛马当前跑出的距离
int i,j; //循环变量
srand(time(NULL)); //随机种子,每次产生的随机数都不一样
while(rank<=HORSENUM)//当名次是1-6时都循环执行
{
system("cls");//清空之前的跑步距离
printf("\n----------开始比赛------------\n");
for(i=0;i<HORSENUM;++i)
{
printf("%d号: ",i+1);
dis[i]+=rand()% MAXSTEP+MINSTEP;//让马跑动一段距离从(0-9)+1
if(dis[i]>=LENGTH)//是否跑到终点
{
dis[i]=LENGTH;
if(s[i]==0)//标记为到了终点
s[i]=rank++;//将当前名次赋给该值,并自增名次值
}
for(j=0;j<dis[i];++j)//打印赛马已跑出的距离
{
printf("-");
}
if(s[i])
printf(" %d\n",s[i]);
else
printf(">\n");
}
Sleep(800);//延迟或睡眠800毫秒==0.8秒
}
}
int main()
{
int score[HORSENUM]={0};//保存各匹马的最终排名
Play(score);
return 0;
}