伪代码:
1.数据定义
2.打印赛道
3.开始比赛
4.输出比赛结果
1.数据定义{
1.1赛道长度NUMBER 70 //宏定义
//全局
1.2定义一个字符串赛道 tracks[NUMBER]
1.3定义兔子的当前步数tmyrabbit
1.4定义乌龟的当前步数mytortoise
}
2.打印赛道
{
2.1打印字符 '-' //表示赛道 长度为NUMBER 70
2.2 赛道初始化为 ' '
}
3.开始比赛
do{
for(int i = 0; i < NUMBER ; i++){
1.调用兔子跑函数
2.调用乌龟跑函数
3,if判断位置相同输出
}
}whlie(再来一次 【兔子 < 70 && 乌龟 < 70】 )
4.输出比赛结果
{
3.判断输赢
3.1
if(兔子 >=70 && 兔子 > 乌龟)
3.1(1)兔子 赢,比赛结束
else if ( 兔子 == 70 && 乌龟 == 70)
平局
else
3.1.(2)乌龟赢,比赛结束
}
C语言实现代码:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <windows.h>
#define NUMBER 70
char tracks[NUMBER];
int tmyrabbit;
int mytortoise;
void track(char * mytrack, char symbol); //初始化赛道
void showtrack(char * mytrack); // 打印赛道
int rabbit(); //兔子执行函数
int tortoise(); // 乌龟执行函数
void winorlost(int num1, int num2);
int main() {
//设置随机数
srand(time(NULL));
int gametime=1;
//模块1 初始化赛道
track(tracks, '-');
//模块2 打印赛道
showtrack(tracks);
//初始化 空格
track(tracks, ' ');
do
{
//for循环执行
for (int i = 0; i < NUMBER; i++)
{
//模块3 兔子函数
rabbit();
//模块4 乌龟调用函数
tortoise();
if (tmyrabbit == mytortoise)
{
printf("\a");//作为咬到了一起
}
gametime++;
Sleep(1000);
}
} while (tmyrabbit < 70 && mytortoise < 70);
winorlost(tmyrabbit, mytortoise);
return 0;
}
void track(char * mytrack, char symbol) {
//初始化
for (int i = 0; i < NUMBER; i++)
{
*mytrack = symbol;
*mytrack++;
}
}
void showtrack(char * mytrack) {
//打印
printf("BIUbang\n");
printf("比赛开始了!\n");
printf("%s\n",mytrack );
}
int rabbit()
{
int a = 1 + rand() % 10;
//处理概率事件
switch (a)
{
case 1:
case 2:
tmyrabbit = tmyrabbit;
break;
case 3:
case 4:
tmyrabbit += 9;
break;
case 5:
tmyrabbit -= 12;
break;
case 6:
case 7:
case 8:
tmyrabbit += 1;
break;
case 9:
case 10:
tmyrabbit -= 2;
break;
}
if (tmyrabbit<0)
{
tmyrabbit = 0;
}
for (int i = 0; i <= tmyrabbit; i++)
{
if (i = tmyrabbit)
{
for (int j = 0; j < tmyrabbit; j++)
{
printf(" ");
}
printf("T");
printf("\n");
}
}
return tmyrabbit;
}
int tortoise()
{
int a = 1 + rand() % 10;
//处理概率事件
switch (a)
{
case 1:
case 2:
case 3:
case 4:
case 5:
mytortoise += 3;
break;
case 6:
case 7:
case 8:
mytortoise += 1;
break;
case 9:
case 10:
mytortoise -= 6;
break;
}
if (mytortoise < 0)
{
mytortoise = 0;
}
for (int i = 0; i <= mytortoise; i++)
{
if (i = mytortoise)
{
for (int j = 0; j < mytortoise; j++)
{
printf(" ");
}
printf("G");
printf("\n");
}
}
return mytortoise;
}
void winorlost(int num1, int num2) {
if (num1 >= 70 && num1 >num2)
{
printf("兔子赢:)");
}else if (num1 == 70 && num2 == 70)
{
printf("^平局^");
}
else
{
printf("乌龟赢:)");
}
}
实现效果: