猜数字游戏的编写

        Hello!CSDN的各位你们好啊,今天我要给大家分享的c语言知识是猜数字游戏的编写。

        首先一个游戏当然离不开一个好的菜单,那我们如何敲出一个可以看得过去的菜单呢?小编采用的是下面这一种方法。

1.打印菜单

这样我们初始的菜单就算完成了。

2.选择结构

下面我们要做的就是如何通过在键盘输入0.1决定是否进行游戏,那么这样一串代码的实现只需要用上我们的switch()选择结构就可以了。

我们通过自建立变量input,然后将其放在switch()的()中,意为输入,然后根据我们输入的值找到与case后面对应相等的数字,然后我们的程序便会运行到那个case 数字:后面的程序到break截止,并跳出选择结构即switch的{}外(这里要注意,一旦不加break,我们的程序将不会跳出选择结构,并继续向下面的case/default后面的语句运行,直到出去为止)。

但是我们会发现如果只是这样设计我们会发现我们的游戏貌似只能玩一次,就结束了,那咋办呢,这个时候我们可以用上do while语句对其进行升级,让其可以多次运行我们的程序,多次玩游戏。

这样我们的选择结构是不是就优化完成了呢?

3.游戏主体设置。

下面我们就要进入我们的游戏的主体的设置了,首先我们要考虑的一个问题是case 1:的后面如果我们塞了一整个游戏程序进去是不是会让这个代码看起来太复杂了,而且如果以后别人想看你的代码可能都要差老远才能看到你的第二case,很容易让人看着不舒服,头晕眼花,于是我们决定引入函数这样一个概念,来让我们的代码 更容易让人理解且更美观。

(1)函数

函数分为两种一种是无返回值函数(它出不来任何值,只是一些如打印这类语句的运行。),第二种是有返回值函数。(即它可以返回一定的值,比较典型的是计算类。)

无返回函数典例:

有返回值函数典例:

在上面两个函数的建立中我们发现我们如果要创立一个无返回值函数只需要void +函数名(){想要完成的程序},有返回值的也差不多:int (这个int可以换取决于你想要函数返回的值是整数还是小数,还是字母等)+函数名(){想要完成的程序},调用时也是非常的简单,函数名字加()即可。另外函数名字的选择最好根据函数完成的任务进行创建。

那么根据上面的知识,我们就可以给我们的游戏主题命名为game(),顺便帮我们的主菜单也放在函数里,这样看着更为清晰,代码如下:

(2)程序运行结构

我们仔细去想这个猜数字运行代码的实现其实无非就是你输入一个数字等不等,如果不等到底是大了还是小了呢,我觉得我们的程序也该做一个提示,不然猜数字游戏就跟中彩票的几率一样小了。我们在这里用到了一个判断大小的这样一个判断,我们很容易想到用if结构来处理这样一个。

(3)随机数

我们对于这个一个游戏的运行的结构确定,那么下一步最终要的就是生成随机数了。

生成随机数,c语言中常用的是rand(),但是要注意在使用它的使用必须包含头文件#include<stdlib.h>,如下图。

但是我们在使用多次该语句后发现该语句输出的数字总是一组

如下

这究竟是为什么呢?原来rand()在使用是,是以一颗种子作为起点来生成随机数。那也就是说要是这个种子是变得那就好了,最好还是一直变的。于是在这里我们引进了时间戳作为种子。

时间戳

那么时间戳是什么呢?

时间戳就是将我们的时间转换为一种特定数字的东西,由于时间每时每刻都在变,所以时间戳也是每时每刻都在变。各位可以在自己的百度上搜一下,是可以看到的,下面小编为大家呈现上几组

大家也可以自己试试哦。

我们在C语言中只需用上头文件#include<time.h >,并在主函数中为输入srand((unsigned int)time(NULL));就可以为rand建立一个随机的种子了。不过记住最好设置在最前面,这样回更加保险。

整个代码如下

在这个猜数字游戏我们依然发现了一个很大的问题就是,范围太大,这又该怎么解决呢?

为猜数字设定范围

其实我们可以利用除余数的方式比如我们让rand()对10取余数,那么结果就只能在1-9之间,那么如果我让它对300取余数,它就只能在1-299之间,那如果我想它在100-200之间呢,那么只需要用100+rand()%101,更具上述逻辑我们整理出一个公式:

若我们想要随机值在a~b之间,只需要设置a+rand()%(b-a+1);即可

那么我们的程序可以这样修改

优化

最后我们再一次对我们的代码做出优化,比如猜数字的次数应该多些,加上一个循环。代码的优化结果如下

这样我们的代码就更为优化,让客户的游戏体验感更好。

结语

好了今天的c语言剧场就到这里了,不知道大家学会了吗?谢谢大家的浏览,今天又是分享c语言知识的一天,开心!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱编程的小赵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值