C语言写龟兔赛跑小游戏

在这里插入图片描述
伪代码:

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("乌龟赢:)");
	}




}

实现效果:
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值