手把手教你创建一个猜数字游戏!小白专属~

本文详细介绍了如何使用C++编程语言构建一个包含菜单选择、随机数生成和游戏次数限制的猜数字游戏,涉及主函数、菜单设计、随机数生成函数以及游戏流程控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

建立猜数字游戏所需要的知识有:循环和函数,只要了解这两个知识点,就可以搭建这样一个简易而又有趣的小游戏!

目录

1创立主题部分

首先,第一步,创立一个主函数,这是程序运行的主题,我们所要搭建的枝叶,也是从这个框架中逐步扩展出去的,

2加入菜单

相信大家都玩过单机小游戏,我们首先接触到的就是菜单,菜单中有基本的选项:选择游戏或者退出游戏,因此我们需要一个菜单,也就是menu函数(在do while循环中加入)。

3加入随机数函数

4设置游戏次数

5Finally!!


1创立主题部分

首先,第一步,创立一个主函数,这是程序运行的主题,我们所要搭建的枝叶,也是从这个框架中逐步扩展出去的

#include<stdio.h>
int main()
{int input=0
do{

}while();
return 0;
}

我们已经搭建好了函数的主题部分,现在需要思考,要实现猜数字程序,我们还需要运用到哪些函数?

2加入菜单

相信大家都玩过单机小游戏,我们首先接触到的就是菜单,菜单中有基本的选项:选择游戏或者退出游戏,因此我们需要一个菜单,也就是menu函数(在do while循环中加入)。

下面是这个代码的进一步完善:

​
void menu()
{
     printf("************************\n");
     printf("****     1.play  *******\n");
     printf("****     2.exit  *******\n");
     printf("************************\n");
}




#include<stdio.h>
int main()
{
    int input=0
    do{
         menu();
         printf("请选择:");
         scanf("%d",&input);//输入0或1选择是否开始游戏

       }while(input);
    return 0;
}

​

3加入随机数函数

既然是猜数字游戏,那么我们需要一个函数来生成随机数,在cplusplus中搜索rand()函数,我们可以了解它的使用方法。实际上,由此函数生成的随机数是有范围的:0到RAND_MAX之间。而这个函数中随机数的生成并不是真正生成,而是伪随机数:看似随机,实际每一次生成的值固定,由种子决定。

那么我们可以让种子变化来使随机数真正随机。

自然,需要引用srand函数time函数。time函数能够生成时间戳,使得每次结果一定不同。

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




#include<stdio.h>
#include<time.h>
int main()
{
    int input=0
    srand((unsigned int)time(NULL));//
    do{
         menu();
         printf("请选择:");
         scanf("%d",&input);//输入0或1选择是否开始游戏

       }while(input);
    return 0;
}

当生成菜单,在用户做出选择之后,需要跳转界面,以满足用户的需求。因此,我们需要添加一个switch函数,来完成以上目的。

switch(input)
{
case 1:
   game();
   break;
case 0:
   printf("退出游戏\n");
   break;
default:
   printf("选择错误,重新选择\n");
   break;
}

在进入游戏后,我们需要函数来完成进入游戏之后的过程。

void game()
{
    int guess=0;
    int ret=rand()%100+1;
//生成随机数的公式:如果要生成a~b的随机数,那么rand()后的内容应是(b-a+1)+a
while(1)//一直循环
{
    printf("请输入要猜的数字:>");
    scanf("%d",&guess);
    if(guess<ret)
    {
        printf("猜小了\n");
    }
    else if(guess>ret)
    {
        printf("猜大了\n");
    }
    else {
         printf("猜对了,恭喜你!数字是:%d\n",ret);
         break;
         }
}
    

4设置游戏次数

为了使程序更加优化,我们还可以设置游戏次数来让游戏过程更加刺激!

void game()
{
    int guess=0;
    int ret=rand()%100+1;
//生成随机数的公式:如果要生成a~b的随机数,那么rand()后的内容应是(b-a+1)+a
    int count=5;//设置游戏的次数为五次
while(count)//一直循环改为根据次数进行循环
{
    printf("请输入要猜的数字:>");
    scanf("%d",&guess);
    if(guess<ret)
    {
        printf("猜小了\n");
    }
    else if(guess>ret)
    {
        printf("猜大了\n");
    }
    else {
         printf("猜对了,恭喜你!数字是:%d\n",ret);
         break;
         }
   count--;//每进行一次,次数减少1
  if(count==0)
{
         printf("次数用完了,正确答案是:%d\n",ret);
}
    }

5Finally!!

将我们搭建的框架组合起来,就得到了完整的程序代码:

void menu()
{
     printf("************************\n");
     printf("****     1.play  *******\n");
     printf("****     2.exit  *******\n");
     printf("************************\n");
}
void game()
{
    int guess=0;
    int ret=rand()%100+1;
//生成随机数的公式:如果要生成a~b的随机数,那么rand()后的内容应是(b-a+1)+a
    int count=5;//设置游戏的次数为五次
while(count)//一直循环改为根据次数进行循环
{
    printf("请输入要猜的数字:>");
    scanf("%d",&guess);
    if(guess<ret)
    {
        printf("猜小了\n");
    }
    else if(guess>ret)
    {
        printf("猜大了\n");
    }
    else {
         printf("猜对了,恭喜你!数字是:\n",ret);
         break;
         }
   count--;
  if(count==0)
{
         printf("次数用完了,正确答案是:\n",ret);
}
  }
#include<stdio.h>
int main()
{
    int input=0
    do{
         menu();
         printf("请选择:");
         scanf("%d",&input);//输入0或1选择是否开始游戏
         switch (input)
         {
         case 1:
              game();
              break;
         case 0:
              printf("退出游戏\n");
              break;
         default:
              printf("选择错误,重新选择\n");
              break;
         }
    }while(input);
    return 0;
}

​

既然这样的话,我只能玩两把了(bushi)

在我玩了10次后,终于猜对了一次,艰难。

不知道你有没有学会呢,VS!启动!快跟我一起猜数字吧(doge),赌狗的游戏~~~~

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值