C语言简单游戏编程学习入门之猜数字

C语言实现猜数字小游戏--控制台应用程序

运行结果预览图

首先系统随机生成一个随机数并保存起来,然后玩家进行猜测。玩家每次猜测时,系统会记录玩家猜测的次数,以及判断所猜的数和系统随机生成的数来比较,大或小了读给出相应的提示,直到玩家猜对了或者猜的次数超过10次了,程序结束!

程序源代码

/*头文件引用*/ 
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

/*主函数*/
int main()
{
	/*定义程序需要的变量*/
	int number;					//系统随机生成的随机数
	int low=1;					//随机数的最小值
	int high=1000;  			//随机数的最大值	
	int guess_number;			//玩家猜测的数字 
	int count_guess=0;			//玩家猜测的次数 
	int max_count=10;			//允许猜测的最大次数 
	
	/*生成指定范围内的随机数*/
	srand(time(0));				//设置时间种子使得每次运行程序都能得到随机值 
	number=rand()%(high-low)+1;	//调用rand函数生成随机数 
	
	/*开始游戏*/
	while(1)							//开始死循环,当猜中时或猜10次还没有猜中才能退出 
	{
		count_guess++;					//猜测次数加一 
		printf("please enter the number you guess between %d to %d : ",low,high);
		scanf("%d",&guess_number);
		
		/*对玩家猜测的数字和系统随机生成的数字进行比较,并作出相应的处理*/ 
		if(guess_number>number)			//猜的数字大了 
		{
			printf("the number you guess is bigger !\n"); 
		}
		else if(guess_number<number)	//猜测的数字小了 
		{
			printf("the number you guess is smaller !\n"); 
		}
		else							//猜中了 
		{
			printf("congratulations , you are right , the count of guess is %d .\n",count_guess);
			break;						//猜对了,退出死循环 
		}
		
		/*还没有猜中,判断猜测次数是否已经是最大次数次了,超过则游戏失败,退出死循环*/
		if(count_guess==max_count)
		{
			printf("the count of guess is more than %d , you are fail , the right number is %d !\n",max_count,number);
			break;
		}
	}
	
	return 0;
}

代码讲解

猜数字游戏首先需要有一个随机生成的数字,C语言的stdlib头文件里为我们提供了 rand函数,它是一个无参函数。它的用法是 rand()%+一个正整数,之和会生成一个0到这个正整数之间的数字(不包含该数字),如 rand()%99便会随机生成一个0到98的正整数。
我们需要对玩家猜测的数字和系统生成的数字对比分析,并输出相应的信息反馈给玩家以帮助他猜对,这时候便需要用到if或if-else或if-else if-else条件语句进行分支判断。如果玩家猜对了,就告诉玩家其猜测用的次数。如果玩家没有猜对而且猜测的次数已经超过的指定的最大次数,那么告诉玩家游戏失败。剩下的情况玩家便继续进入死循环重新猜测。
值得注意的一点是,我们如果不使用 srand()函数来设置时间种子的话,每次程序运行都还是上次生成的随机数,因为不设置时间种子时,系统会分配一个默认的时间种子,并且同一个时间种子生成的随机数是一样的,所以我们需要对时间种子进行设置以达到每次运行生成的随机数都不一样。具体用法 srand(time(0))或srand(time(NULL)),表示使用当前时间作为种子。因为每次系统运行的当前时间都不一样,所有不受上一次运行的影响。

技术前提

我们在设计猜数字游戏之前,需要了解一些基本知识,例如:C语言的输入函数scanf的使用,输出函数printf的使用,整形数据类型的定义和使用,分支条件的掌握和循环语句的理解	。

开发总结

本次的猜数字游戏开发,我温习了C语言的输入格式化函数、输出格式化函数的使用,整形数据类型的使用,分支条件结构和循环结构的结合可以实现较为简单的程序逻辑,希望继续深入的学习并掌握更好的技术,最终可以为社会软件方面的建设带来一些微薄的贡献。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值