猜数字游戏(详解)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 二、rand函数:
  • 三、代码:


前言

今天带来一个用c语言写的简单小游戏涉及到的知识不多新手小白也能学会,在猜数字游戏中涉及到三个函数调用:第一个就是菜单menu这个很简单大家也可以自己设计。第二个就是game函数游戏的主体部分用来判断输入的数字和系统给出的随机数是否相等。第三也是最重要的一个就是系统的随机数怎么给也是整个小游戏的灵魂。

二、rand函数:

font color=#999AAA >那么我们来介绍一下这个函数rand,首先这个函数需要一个头文件.rand函数返回0到rand_MAX范围内的伪随机整数。那么这个rand_MAX的值是多少呢?用十六进制表示的话是0x7fff.这个数是多少呢,它是32767.也就是说rand的值是0到32767之间的随机整数。但是当你去调用rand 函数的时候你会发现它的随机数是有规律的.猜数字游戏(详解)_第1张图片
我们能够看到这里先给出了rand函数的10个随机数但是当你再次打开文件重新编译运行的时候你会发现都是一样的,那么我们去解决这个问题我们在msdn上能够查找到这个函数的用法Use the srand function to seed the pseudorandom-number generator before calling rand在调用rand之前,使用srand函数设定随机数生成器。实验如下:

#include
#include
int main()
{
     
	
	for(int i =0;i < 5;i++){
     
	srand(1);
	printf( "%6d\n", rand());}
	for(int i =0;i < 5;i++){
     
	srand(2);
	printf( "%6d\n", rand());}
	return 0;
 } 

猜数字游戏(详解)_第2张图片
这里我们发现随机数会随着srand()中的数字而改变。那么我们让crand函数中的数随时改变就行了,这时候其实我们电脑有一样东西时刻在改变,就是时间,在这里我们只要把时间放进去我们就可以生成没有规律的随机数。也就要引用时间戳大家可以去百度一下。这里直接给出答案srand((unsigned int) time(NULL));来表示就能解决随机数问题了,建议大家去msdn官网下载一个msdn(Microsoft当前提供的有关编程信息的最全面的资源,包含上千兆字节的开发人员所必需的信息、文档示例代码、技术文章等等,可供全世界的开发者使用)

三、代码:

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

void game(){
     
	int guess = 0;
	int ret = rand()%100+1; 
//	printf("%d",ret);
	while(1){
     
		printf("请猜数字:");
		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("请选择>");
		scanf("%d",&input);
		switch(input){
     
			case 1:game();break;
			case 0:printf("退出游戏\n");break;
			default:printf("选择错误,重新选择\n");			
		}		
	}
	while(input);
	
	return 0;
 } 

你可能感兴趣的:(c语言)