⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 龟兔赛跑.c

📁 一个解决龟兔赛跑爬山问题的算法
💻 C
字号:
/*下面这段代码模拟了龟兔赛跑爬山的情况,其中有个时钟触发设置每秒执行一次循环,乌龟的规则是:50% 的机会快走(右移三格);20% 的机会下滑(左移六格);30% 的机会慢走(右移一格). 

兔子的规则是:20% 的机会睡觉(不移动);20% 的机会大跳(右移九格);10% 的机会大滑(左移十二格);30% 的机会小跳(右移一格);20% 的机会小滑(左移两格). 

其中最先走到整 70 格的胜利,超过 70 格的从头开始;程序在一条线上打印了龟兔移动的轨迹,当两者重合时打印 P;乌龟用 G 表示,兔子用 T 表示. 

***************************************/
#include<stdio.h> 
#include<stdlib.h> 
#include<time.h> 

void guitu(void); 

main() 
{ 
srand(time(NULL)); 
guitu(); 
return 0; 
} 

void guitu() 
{ 
int i,j,count=0,cou=0,number; 
char printfun[71]; 

while(1) { 
for(j=0;j<70;j++) 
printfun[j]=' '; 
printfun[71]=''; 

number=rand()%10+1; 
printf("n"); 

if(1<=number && number<=5) { 
count=count+3; 
if(count>70) count=0; 
printfun[count]='G'; 
} 

if(6<=number && number<=7) { 
count=count-6; 
if(count<0) count=0; 
printfun[count]='G'; 
} 

if(8<=number && number<=10) { 
count=count+1; 
if(count>70) count=0; 
printfun[count]='G'; 
} 

if(1<=number && number<=2) { 
cou=cou+0; 
printfun[cou]='T'; 
} 

if(3<=number && number<=4) { 
cou=cou+9; 
if(cou>70) cou=0; 
printfun[cou]='T'; 
} 

if(number==5) { 
cou=cou-12; 
if(cou<0) cou=0; 
printfun[cou]='T'; 
} 

if(6<=number && number<=8) { 
cou=cou+1; 
if(cou>70) cou=0; 
printfun[cou]='T'; 
} 

if(9<=number && number<=10) { 
cou=cou-2; 
if(cou<0) cou=0; 
printfun[cou]='T'; 
} 

if(count==cou) 
printfun[count]='P'; 

printf("%s",printfun); 
printf("nn"); 

if(count==70) { 
printf("gui win!!!nn"); 
break; 
} 
if(cou==70) { 
printf("tu win!!!nn"); 
break; 
} 
sleep(1); 
} 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -