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

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



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),赌狗的游戏~~~~

相关文章
|
6月前
|
编译器 C语言 C++
手把手教学c语言实现猜数字经典小游戏(1~100)
手把手教学c语言实现猜数字经典小游戏(1~100)
328 0
|
6月前
|
存储 数据可视化 安全
手把手超详细教学用c语言实现扫雷小游戏
手把手超详细教学用c语言实现扫雷小游戏
56 0
|
8月前
|
前端开发 算法 JavaScript
手把手教你制作简易计算器
手把手教你制作简易计算器
60 0
|
11月前
|
C语言
【C语言】手把手带你实现《完整版扫雷》
前言 这种小游戏主要锻炼我们模块化编程能力,什么是模块化编程呢 模块化编程:模块化编程就是把我们的一整个项目,分成很多模块(比如我们生产汽车,可以分为生产发动机、生产轮胎、生产车架、组装等)而一个程序工程包含多个源文件(.c 文件和 .h 文件),每个 .c 文件可以被称为一个模块,每一个模块都有其各自的功能,而每一个.h文件则是声明该模块,相当于功能说明书 ,大大提高代码可阅读性,不会使代码显得臃肿。 扫雷(游戏规则) 挖到地雷,游戏结束,挖到空方快,游戏继续,挖到数字则表示在其周围的八个方块中有多少个雷,如果怀疑一个地方是雷,可以对其进行标记,标记后的位置需要取消标记才能挖开,以免误操
|
C++
AcWing语法基础课笔记汇总
AcWing语法基础课笔记汇总
91 0
|
C++
AcWing语法基础课笔记 第六章 C++中的函数
函数让代码变得更加简洁。 ——闫学灿
76 0
|
C语言 C++
扫雷游戏---手把手教程(含源码)【C语言】
扫雷游戏---手把手教程(含源码)【C语言】
79 0
扫雷游戏---手把手教程(含源码)【C语言】
|
安全 C语言
四步手把手教你实现扫雷游戏(c语言)
四步手把手教你实现扫雷游戏(c语言)
117 0
四步手把手教你实现扫雷游戏(c语言)
|
运维 Cloud Native Devops
小白新手轻松部署扫雷小游戏
简要讲述云效AppStack的基础使用操作以及在使用中的感受
小白新手轻松部署扫雷小游戏
|
存储 缓存 JavaScript
手把手教你进阶VUE,猴子都能看懂的教程(下)
VUE是动态构建用户界面的渐进式 JavaScript 框架,编码简洁, 体积小, 运行效率高,,今天我们通过超多图解、代码进阶vue核心
1275 3
手把手教你进阶VUE,猴子都能看懂的教程(下)