0
点赞
收藏
分享

微信扫一扫

用C语言写一个简单的小游戏——猜数字

楠蛮鬼影 2022-05-05 阅读 56

我们该如何设计这个程序?

1.首先应该打印一个菜单,让玩家选择玩游戏或者退出游戏

2.当玩家选择玩游戏,我们让电脑生成一个1~100的随机数,让玩家去猜

3.如果玩家猜的数比电脑生成的数大,我们提示猜大了

4,如果玩家猜的数比电脑生成的数小,我们提示猜小了

5.如果玩家猜的数等于猜的数,我们说玩家猜对了

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
	printf("*********************************\n");
	printf("*************1.猜数字************\n");
	printf("*************0.退出游戏**********\n");
	printf("*********************************\n");
}
void game()
{
	int ret = rand() % 100 + 1;
	int guess = 0;
	while (1)
	{
		printf("请猜数字\n");
		scanf("%d", &guess);
		if (guess > ret)
		{
			printf("猜大了\n");
		}
		else if (guess < ret)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("猜对了\n");
			break;
		}
	}
}
int main()
{
	int input = 0;
	srand((unsigned int) time(NULL));
	do
	{
		menu();//写一个函数用来打印菜单
		printf("请选择(1 or 0)");
		scanf("%d", &input);
		switch (input)
		{
		case(1):
			game();//写一个函数用来实现猜数字的逻辑
			break;
		case(0):
			printf("退出游戏\n");
			break;
		default:
			printf("请重新选择\n");
			break;
		}
	} while (input);
	return 0;
}

这个程序的难点是如何让电脑生成一个随机数。

虽然rand函数可以随机生成一个0~RAND_MAX的整数;但是我们如果不对这个函数进行设置的话,它每次生成的一组随机数是一样的。

我们这里不设置随机rand函数,把生成的随机书打印出来给大家看一下

 52cba6bedac44921ac978c34d186215c.png

21d7586007ea4e939d2a585c508ef4fd.png

可以看到俩组生成的随机数一样。

所以我们要对rand函数进行设置。

srand可以对rand函数进行设置, srand()括号里面的数字是可以改变rand函数的随机值的,所以我们要在strand函数里面写一个会变化的数字。

那么什么东西是一直在变化的呢?答案当然是时间啦,这里简单说一下时间戳,每一个时间都对应这一个时间戳。而time这个函数就可以返一个时间戳,所以我们把time函数的返回值给srand函数。

这里也要注意传给srand的数需要的类型是无符号整形(unsigned int),而time函数返回的是整形(int)所以我们要用unsigned int 强制转换一下time函数返回的时间戳的类型。

接下来给大家看设置了rand函数后生成的随机值。

8b9dfe46c79e4906b7322b331fb6de3c.png

 c5e7dbc3b7264f1789ccce59ec844e65.png

可以看到生成的随机数是不一样的

举报

相关推荐

0 条评论