为了观察比赛过程, 每次移动中间,sleep了1s。好像挺带劲的。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int rabbitRun(int type);
int turtleRun(int type);
int main(){
int rabbitX = 1, turtleX = 1, win = 0, s, i ,randWin;
srand(time(NULL));
while( !win ){
s = (rand() % 10) + 1;
rabbitX += rabbitRun(s);
turtleX += turtleRun(s);
if(rabbitX < 1){
rabbitX = 1;
}
if(turtleX < 1){
turtleX = 1;
}
for(i = 1 ; i <= 70; i++){
if(turtleX == i && rabbitX == i){
printf("OUCH!!!");
}
else if( turtleX == i){
printf("T");
}
else if(rabbitX == i){
printf("H");
}
else{
printf("_");
}
}
printf("\n");
if( rabbitX >= 70 || turtleX >= 70){
win = 1;
if( rabbitX >= 70 && turtleX >=70){
randWin = rand() % 2;
/* turtle win */
if( randWin == 0 ){
printf("TORTOISE WINS!!! YAY!!!\n");
return 0;
}
printf("it's a tie.\n");
}
else if( rabbitX >= 70){
printf("Hare Wins. Yuch.\n");
}else{
printf("TORTOISE WINS!!! YAY!!!\n");
}
}
if( !win ){
sleep(1);
}
}
}
int rabbitRun(int t){
int moveSteps[] = {0, 0, 0, 9, 9, -12, 1, 1, 1, -2, -2};
if(t >= 1 && t <= 10){
return moveSteps[ t ];
}
return 0;
}
int turtleRun(int t){
int moveSteps[] = {0, 3, 3, 3, 3, 3, -6, -6, 1, 1, 1};
if(t >= 1 && t <= 10){
return moveSteps[ t ];
}
return 0;
}
比赛过程还挺劲爆的: