猜数字游戏总结

在看了鹏哥视频后对他写的一些代码慢慢的自己总结,来提升自己,首先对于一款游戏来说,不管你进去玩不玩,都会有一个主界面Welcome,其次呢会有一个选择是否玩游戏,所以如果选择开始玩游戏的话,那就有了一个游戏内容Game。但是在开始猜数字之前,需要先了解一下几个知识,那就是时间戳是什么?如何去产生一个随机数?那么就先认识一下时间戳,顾名思义它就是与时间脱不了干系,因为我们在设计随机数的时候,为了避免具有一定的规律性,在电脑上最随机的也就是时间这个概念,所以就产生了时间戳,它表示的是计算机起始的时间减去当前计算机的时间。也就是说利用时间戳设置随机数的生成起点。而在这里产生随机数会用到rand函数,但运用这个函数需要配合srand函数,在下面的代码中会具体分析。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void Welcome()
{
	printf("***************************\n");
	printf("****** WELCOME TO HERE*****\n");
	printf("********* 1.play **********\n");
	printf("********* 0.exit **********\n");
}
void Game()
{
	int r_num = rand() % 100 + 1;//定义一个随机数,因为随机数产生的范围太大,不容易猜,所以用这种方式控制范围在1--100
	int input = 0;
	while (1)
	{
		printf("请输入你猜的数字:");
		scanf("%d", &input);
		if (input > r_num)
		{
			printf("哦吼,猜大哦,再试试\n");

		}
		else if (input < r_num)
		{
			printf("糟糕,猜小了,哈哈哈,别灰心,奥力给\n");
		}
		else
		{
			printf("哇塞哟,猜对了哦,恭喜你呀!\n");
			break;//因为已经猜对了,不需要继续了,所以用break结束循环
		}
	}
}
int main(void)
{
	int input = 0;
	srand((unsigned)time(NULL));
	do
	{
		Welcome();
		printf("Hello,请选择是否要开始猜数字的旅程哦!\n");
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			Game();
			break;
		case 0:
			printf("退出游戏啦\n");
			break;
		default:
			printf("请再次返回,重新输入哦\n");
			break;
		}
	} while (input);

	return 0;
}

 

 在这个程序中,需要在说明的是rand函数,在msdn中去查找它的头文件是<stdlib.h>,对它的解释如下:The rand function returns a pseudorandom integer in the range 0 to RAND_MAX. Use the srand function to seed the pseudorandom-number generator before calling rand,也就是说rand函数返回一个范围从0到RAND_MAX的伪随机整数,在调用rand之前,需要使用srand函数作为伪随机数生成器设置种子。然后查找srand函数可以看到 void srand( unsigned int seed ),表示的是一个无符号整型数据,而time这个是属于长整型数据,所以在使用srand((unsigned)time(NULL));需要强制类型转换,在产生这样一个数字之后,就是玩家来猜数字,无非就是三种情况,猜大,猜小,和猜正确,所以猜数字游戏也就告一段落了,感谢!以上就是我的一些笔记,如有错误,请指出!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小哈不会玩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值