如何用C语言实现猜数字(1~100)游戏

思路1.让电脑生成一个随机数--1~100的数字

           2.然后我们作为玩家输入一个数字

           3.如果我们猜的数字小了,电脑提示“猜小了”,猜的数字大了,电脑反之提示“猜大了”。如果猜对了,电脑输出YOU WIN ! ! !

效果展示

 1.让电脑生成一个随机数

      我们可以用rand函数来生成随机数,不过因为rand函数是使用一种算法而生成的数字,所以它并不能真正的实现随机数,生成的可以称其为伪随机数

      rand函数生成随机数需要srand函数设置随机数的生成器。也就是srand函数生成一个随机数,这样rand函数就可以产生一个随机数。给srand函数生成一个随机数我们如何实现?这时可以使用time函数,它可以生成时间戳------时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。这样随着电脑时间的变化就形成了一个随机数。

代码实现

srand((unsigned int)time(NULL));  \\首先time函数的类型不同,所以将其强制转换,
int random_number = rand()%100+1; \\并给time函数传入一个空指针(“NULL”(‘0’))
                                  \\rand()%100+1这样可以控制随机数的大小在1~100

2.玩家输入一个数字

首先可以创建一个菜单来让玩家选择是否进行游戏,自行发挥即可

void meau()
{
    printf("**********************************\n");
    printf("***********     1.play     *******\n");
    printf("***********     0.exit     *******\n");
    printf("**********************************\n");
}

然后就是让玩家输入一个数字,进行游戏了

void game()
{
	int x = 0;
	int random_number = rand()%100+1;
	printf("请猜数字>:");
	while (1)
	{
		scanf("%d", &x);
    }
}

上述代码仅仅只是让玩家可以输入数字,但如何进行游戏的具体内容还要看第三步

3.游戏规则的实现

void game()
{
	int x = 0;
	int random_number = rand()%100+1;
	printf("请猜数字>:");
	while (1)
	{
		scanf("%d", &x);
		if (x == random_number)
		{
			printf("YOU WIN ! ! !\n");
			break;
		}
		else if (x > random_number)
			printf("猜大了,请再输入一次:\n");
		else
			printf("猜小了,请再输入一次:\n");
	}
}

上述代码就能实现游戏的规则了,注意的是,这会一直让你猜,直到你猜对为止,其实我们可以改变一下循环就可以达到有限次数的猜数字了。

4.将前面的代码进行合理的组合和添加就能运行游戏了

#include <stdio.h>
#include<stdlib.h>

void meau()  \\打印游戏初始界面
{
	printf("**********************************\n");
	printf("***********     1.play     *******\n");
	printf("***********     0.exit     *******\n");
	printf("**********************************\n");
}
void game()  \\游戏运行的具体规则的实现
{
	int x = 0;
	int random_number = rand()%100+1;
	printf("请猜数字>:");
	while (1)
	{
		scanf("%d", &x);
		if (x == random_number)
		{
			printf("YOU WIN ! ! !\n");
			break;
		}
		else if (x > random_number)
			printf("猜大了,请再输入一次:\n");
		else
			printf("猜小了,请再输入一次:\n");
	}
}

int main()
{
	int input = 0;
	srand((unsigned int)time(NULL));
	do
	{
		meau();
		printf("请选择>:");
		scanf("%d", &input);  \\选择是否开始游戏
		switch (input)
		{
		case 1:
			game();
			break;
		case 0:
			printf("退出游戏\n");
			break;
		default:
			printf("选择错误,请重新选择\n");
			break;
		}
	} while (input);
	return 0;
}

总结:其实游戏的运行规则并不难实现,最关键的是如何生成一个随机数来猜。能看见这篇文章的你----果然好看的人眼光都一样!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值