C语言实现简单的猜数字游戏

如何用C语言实现一个简单的猜数字游戏呢?

首先,写一个输出函数,给玩家一个提示,提供选择。

1.进入游戏

2.退出游戏

void Print()
{
	printf("******************************\n");
	printf("*                            *\n");
	printf("*    欢迎来到猜数字小游戏    *\n");
	printf("*   1.play       2.exit      *\n");
	printf("*                            *\n");
	printf("******************************\n");

}

接着写一个游戏函数,num为要猜的随机数字,guess为用户猜的数字。

在一个while循环里:若输入的数值 等于 电脑给出的随机数时,输出“恭喜你!猜对啦!!”;

若输入的数值 大于 电脑给出的随机数时,输出“猜大了!!”,用户继续输入,循环继续,直到猜对为止;

若输入的数值 小于 电脑给出的随机数时,输出“猜小了!!”,用户继续输入,循环继续,直到猜对为止;

void Play()
{
	int num = rand()% 100 + 1;//产生100以内的随机数
	int guess;
	printf("请输入你猜的数字(1-100):\n");
	while (scanf("%d", &guess))
	{
		if (guess == num)
		{
			printf("恭喜你!猜对啦!!\n");
			break;
		}
		else if (guess > num)
		{
			printf("猜大了!!\n");
		}
		else
		{
			printf("猜小了!!\n");
		}
	}
}

最后,写main函数,先调用Print()函数;choice代表选项,当choice 为 1时,调用Play()函数,进入游戏;当choice 为 2时,退出游戏;当choice 既不等于1也不等于2时,让用户重新输入。

int main()
{
	srand((unsigned)time(NULL));
	int choice;
	Print();
	while (scanf("%d", &choice))
	{
		if (choice == 1)
		{
			Play();
		}
		else if (choice == 2)
		{
			printf("        bye~  下次见!   \n");
			break;
		}
		else
		{
			printf("请重新输入:\n");
		}
	}
		
	return 0;
}

这其中主要的难点就是如何生成一个随机数。rand()函数是C语言里生成随机数的一个函数,rand() % 100 的范围是0-99,要想在1-100之间,只要 rand() % 100 + 1 就可以;它的头文件是#include<stdlib.h>,但它并不是实际意义的随机数,每次编译,出现的随机数都是一样的。因此这里就需要用srand()函数进行初始化,利用 srand((unsigned)time(NULL)) 来实现真正意义的随机;它的头文件也是#include<stdlib.h>,这里还用到了time()函数,需要引用头文件#include <time.h>。

完整代码为:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void Print()
{
	printf("******************************\n");
	printf("*                            *\n");
	printf("*    欢迎来到猜数字小游戏    *\n");
	printf("*   1.play       2.exit      *\n");
	printf("*                            *\n");
	printf("******************************\n");

}
void Play()
{
	int num = rand()% 100 + 1;//产生100以内的随机数
	int guess;
	printf("请输入你猜的数字(1-100):\n");
	while (scanf("%d", &guess))
	{
		if (guess == num)
		{
			printf("恭喜你!猜对啦!!\n");
			break;
		}
		else if (guess > num)
		{
			printf("猜大了!!\n");
		}
		else
		{
			printf("猜小了!!\n");
		}
	}
}
int main()
{
	srand((unsigned)time(NULL));
	int choice;
	Print();
	while (scanf("%d", &choice))
	{
		if (choice == 1)
		{
			Play();
		}
		else if (choice == 2)
		{
			printf("        bye~  下次见!   \n");
			break;
		}
		else
		{
			printf("请重新输入:\n");
		}
	}
		
	return 0;
}

运行结果如下(VS2013):



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值