#include<stdio.h>
#include<stdlib.h>
#include<time.h> /* 所需头文件 */
#include<Windows.h>
void guitu(void);
main()
{
srand(time(NULL)); /* 时间触发设置*/
guitu(); /* 调用guitu函数*/
return 0;
}
void guitu() /*定义龟兔函数*/
{
int j,count=0,cou=0,number; /*定义变量*/
char printfun[71];
while(1)
{
for(j=0;j<70;j++)
{
printfun[j]=' ';
printfun[70]='|';
}
number=rand()%10+1; /* 产生随机数*/
printf("\n");
if(number>=1&&number<=5)
{
count+=3; /*乌龟右移3格*/
if(count>70)
{
count=0; /*如超过70格,从头开始计数*/
}
printfun[count]='G';
}
if(number>=6&&number<=7)
{
count-=6;/*乌龟左移6格*/
if(count<0)
{
count=0; /*如退到0,则从0重新计数*/
}
printfun[count]='G';
}
if(number>=8&&number<=10)
{
count+=1; /*乌龟右移1格*/
if(count>70)
{
count=0; /*如超过70格,从头开始计数*/
}
printfun[count]='G';
}
if(number>=1&&number<=2)
{
cou+=0; /*兔子不动*/
if(cou>70)
{
cou=0;
}
printfun[cou]='T';
}
if(number>=3&&number<=4)
{
cou+=9; /*兔子右移9格*/
if(cou>70)
{
cou=0; /*如超过70格,从头开始计数*/
}
printfun[cou]='T';
}
if(cou==5)
{
cou-=12; /*兔子左移12格*/
if(cou<0)
{
cou=0; /*如退到0,则从0重新计数*/
}
printfun[cou]='T';
}
if(number>6&&number<=8)
{
cou+=1;/*兔子右移1格*/
if(cou<70)
{
cou=0; /*如超过70格,从头开始计数*/
}
printfun[cou]='T';
}
if(number>=9&&number<=10)
{
cou-=2;/*兔子左移2格*/
if(cou<0)
{
cou=0; /*如退到0,则从0重新计数*/
}
printfun[cou]='T';
}
if(count==cou) /*同时到达*/
{
printfun[count]='P';
}
printf("%s\n",printfun);
printf("\n");
if(count==70)
{
printf("gui win!!!\n"); /*乌龟胜出*/
break;
}
if(cou==70)
{
printf("tui win!!!\n"); /*兔子胜出*/
break;
}
}
}
个人感想:系统的主要功能函数式guitu函数。其中通过sleep(1)函数使得“龟”、“兔”每秒钟走一步,变量count和cou分别表示“龟”、“兔”的位置,赛道由数组char printfun[71]来实现。在while循环中,每次由函数number=rand()%10+1产生一随机数,按其值确定“龟”、“兔”前进的方向和步骤,“龟”或“兔”到达终点,即count==70或cou==70时,跳出循环,产生比赛结果。