C语言实现猜数字小游戏(简单易懂改良版)

目录

#猜数字游戏

具体要求:

实现随机数的方法:

代码的实现:

void menu()

void game()

总代码:

运行结果: 

前言:

        你好呀,我是小梨子,C语言作为一个历史悠久,十分传统的编程语言,很适合新手来学习。学会了基本语法后,我们可以尝试写一些小游戏来玩玩。今天我们就来写一个猜数字游戏吧。

具体要求:

        猜数字游戏,首先作为一个游戏而言,它肯定要有可玩性。而猜数字游戏的可玩性关键在于数字生成的随机性,数字生成的范围(1-100),以及玩家猜错了,系统要给出相关提示信息,比如猜大了,猜小了。玩家还要能自主选择游玩次数,从第一次到无限次都可以。

实现随机数的方法:

        为了游戏的可玩性,我们将生成随机数的范围设为1~100。

        首先,我们来看一个函数,rand函数,rand函数是C语言里面生成随机数的一个函数。

 在引用rand函数之前,我们需要包含stdlib.h头文件

由上可得, rand是一个整形函数,返回0~RAND_MAX范围之间的一个整数。

RAND_MAX是一个具体的值:0x7fff

 

 

 (HEX:16进制,DEC:10进制,OCT:8进制)

通过程序员计算机计算的值可得出来,RAND_MAX的10进制值为:32767。

 通过上文可知,rand函数在使用之前需要使用一个srand函数用来设置随机数的生成器。

         为了数字生成的随机性,srand函数在调用的时候,括号里的seed应该是一直变化的值。那生活中什么数字一直在变化?对,时间,在这里我们引入时间戳的概念。

 

         time_t在这个函数定义中是整形。

        time函数在使用前需要引入头文件time.h

         C语言中time函数会返回时间戳 ,函数参数为指针类型,我们只需调用NULL空指针即可。为了防止警告,我们需要将time函数强制转换为unsigned int类型。

         为了随机性考虑,srand函数只需调用一次,因此在实际使用中,将srand放在main函数中调用即可。

        我们刚开始的要求是生成1~100之间的整数,而不是0~32767,所以我们需要进行如下操作。

         这样系统生成随机数的操作就完成了。

代码的实现:

  一个简单的菜单函数:

void menu()

通过几个printf语句的输出形成一个简单的菜单界面,供玩家选择。

一个游戏函数:

void game()

 

num为玩家输入的数字,ret为系统生成的随机数,count是计算玩家猜对数字所用的次数。

        接下来是一个while结构,while里面的if-else结构来判断玩家输入的数字是否正确,正确,通过break语句跳出while循环,如果错误,则根据系统的提示一直猜下去。

 一个主函数:

int main()

         主函数中为了计算玩家猜对数字所花的时间,调用了clock函数,clock函数返回的是当前被调用的时间(以毫秒为单位),定义两个变量,一个在程序进行前调用clock函数,一个在程序结束后调用clock函数,这样就可以计算出猜数字所花的时间。

        这里有个细节,就是while后面的括号里面是input,根据主函数里的switch结构可知,玩家输入1代表进行游戏,输入0代表退出游戏,输入其他数字会提示错误。因为while后面的括号里的值只有为0的时候才能跳出循环,所以当玩家不选择0的时候游戏会一直进行下去,选错数字的时候,系统会一直提示,知道玩家选对。

总代码:

运行结果: 

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值