【C++开发实例】使用C++做一个整蛊好兄弟的猜数游戏

作为小编今天的睡前水文,就给大家来点干货:

酱 !酱 !

猜数字游戏

所谓猜数字游戏,就是让系统随机生成一个数字,但是这个数字不会让人看到,我们只能把它猜出来,而在指定次数内猜中的话就会显示胜利。

要想实现这样的一个游戏,首先我们要有生成随机数的代码:

rand()函数

rand()函数就是用来生成随机数的,rand()会返回一个范围在0~MAX(32767)之间的随机整数,暂时我们不用了解MAX(32767)有多大,我们只需要知道它是非常非常非常非常非常大的数就OK了。
在调用rand()函数之前,我们需要使用srand()函数来设置种子随机数,如果不设置它,rand()函数在调用时,自动设计随机种子数位1,每次产生的随机数也就都是相同的。这样的话就不会达到我们需要的每次产生不同随机数的效果。

为了解决这个我们,我们引入一个新的头文件“include<ctime>”,这样我们就可以调用time()函数了

time()函数

time()函数返回自纪元Epoch(1970-01-01 00:00:00 UTC)起经过的时间秒数,所以每时每刻它都是在变化的,并且我们还需要给它传一个参数NULL,NULL本身是空的意思,既然是空了那为什么还要传呢?害,这个知识点对做本期这个游戏一点帮助也没有,感兴趣的朋友可以自己去查一下。

重新设置种子随机数

这次我们就可以设置一个种子随机数了,代码:

srand((unsigned)time(NULL));//unsigned即是无符号,就是没有负的。。

这样在使用随机数函数rand()就可以实现每次都产生不同的随机数问题了。

那么接下来还有几个问题:
首先,rand()函数的返回值范围太大了,0~MAX(32767)这个范围的数让我们可能一辈子都猜不完,这就需要我们来把猜数范围有一个规定,如猜0~100之间的数。

确定随机数的范围

那么怎么讲随机数的返回值限制在一百以内呢?
它的返回的值是无法控制的,但是我们可以对返回的值做一些手脚,那就是----取余。
任何一个数进行对100取余的运算之后,结果都是100以内的数,这不难理解。于是通过代码:

rand()%100

就实现了生成百以内的随机数问题。

游戏部分

接下来我们开始写游戏部分的代码:
首先定义变量并生成随机数:

	int a,b;
	srand((unsigned)time(NULL));
    a=rand()%100;

之后是我们输入猜的数字并且进行判断,这里每猜一次我们要提醒游戏者猜的数字是大了还是小了:

	cin>>b;
	if(b>a)
            printf("再小点!\n");
    if(b<a)
            printf("再大点!\n");
    if(a==b)
            printf("猜对了!\n");

但是仅仅这样,这个游戏也太简单了,所以我们要加大难度,限制猜的次数,比如只能猜5次,这个问题可以用while或者for循环来解决,但只有在规定次数内猜对了数字会显示胜利,否则会显示失败,代码如下:

int main()
{
    int a,b;
    srand((unsigned)time(NULL));
    a=rand()%100;
    for(int i=1;i<=5;i++)
    {
        cin>>b;
        if(b>a)
            printf("再小点!\n");
        if(b<a)
            printf("再大点!\n");
        if(a==b)
        {
            printf("猜对了!\n");
            break;
        }
        if(i==5)
        {
            printf("Game over");
            break;
        }
    }
    return 0;
}

这样就形成了一个游戏的模板
在这里插入图片描述
但是还是有点稍欠火候,接下来讲一讲如何用这个小游戏去整蛊你学代码的好兄弟!

整蛊的部分

我们要做的就是减少猜数的次数,并更改游戏失败触发的内容,比如:关机!!!让电脑自己关机还是不可控的那种(坏笑)关于次数,我觉得5次已经很少了,除非游戏的人运气爆棚。那么我们就来说一下关机的代码:

system("shutdown -s -t 5");

不需要特殊的头文件,直接就可以使用,shutdown -s就是关机的意思,如果换成shutdown -r就是重新启动(本人觉得还是关机有意思,因为他要再自己气愤的去开一次机)-t后面是关机的时间,这里用五秒钟,让你的好基友有个反应自己上当了的时间(坏笑)。
最后再附上取消关机命令:

system("shutdown -a");
完整的代码

最后是游戏完整的代码:

#include<iostream>
#include<ctime>
using namespace std;
int main()
{
    int a,b;
    srand((unsigned)time(NULL));
    a=rand()%100;
    cout<<"请猜一个百一内的整数,您只有五次机会,祝您好运!\n";
    for(int i=1;i<=5;i++)
    {
        cin>>b;
        if(b>a)
            printf("再小点!\n");
        if(b<a)
            printf("再大点!\n");
        if(a==b){
            printf("牛逼!\n");
            break;
        }
        if(i==5)
        {
            printf("完犊子!啥也不是!");
            system("shutdown -s -t 5");
            break;
        }
    }
    return 0;
}

实现图:
在这里插入图片描述
快拿去整蛊你的好基友吧!由于游戏的无脑简单性,初学者处于好奇都会愿意尝试(偷笑),还记得当初小编将这个代码发到了班级群里,导致班里好多同学敲了一晚上的代码没保存就关机了(偷笑),祝大家好运啦!

晚安玛卡巴卡。。。

2021.2.2

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Codingemon

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

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

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

打赏作者

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

抵扣说明:

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

余额充值