说到猜数字游戏,相信每位码人都再熟悉不过了。大家还记得最开始接触的c语言猜数字游戏是怎么实现的呢?是否也是下图这样自导自演式的游戏呢?

这是当时学校的老师带着我们写的猜数字游戏,自己设置数字去猜,没什么意义。

但这次要写的猜数字游戏可不是这样的,而是编译器随机产生一个数字,然后去猜,这样的玩法才是真正的猜数字游戏。

猜数字游戏基本逻辑包括:

1.进入游戏菜单,选择进入游戏或者退出游戏。

2.选择进入游戏后,调用实现游戏的函数,开始猜数字,猜大了或猜小了,编译器进行提示,直至猜对。

3.猜对了,跳出游戏,回到菜单选择,继续或退出游戏。

下面一 一实现:

1.进入游戏菜单,调用menu函数打印菜单

2.1进入游戏,先看目前的运行状态

2.2 继续进行菜单选择的内容,选择1进入游戏,选择0退出游戏,用switch()语句实现。游戏可以玩多次,因此把switch语句放在循环里进行,这里使用do while()循环语句:

2.3继续写game函数,完成猜数字游戏 ,此时涉及到一个问题,在输入所猜的数字之前,编译器需要先产生一个随机数。这里用rand()实现随机数的生成,需要包含头文件为<stdlib.h>

2.4此时,猜数字游戏已经基本实现了。但还存在一个问题,rand() 产生的是伪随机数字,每次执行时是相同的; 若要不同, 在主函数里,用函数 srand() 初始化它,srand() 用来设置 rand() 产生随机数的随机数种子,可以利用时钟作为随机数的种子--srand((unsigned int)(time(NULL)) ,这样每次运行产生的随机数就会不同,因为每一次运行程序的时间是不同的。

srand需要包括的头文件<stdlib.h>,   时钟需要包括头文件<time.h>

3. 猜数字游戏已经实现了,下面来看效果:

第一次:产生的随机数是62

第二次:产生的随机数是69

并且产生的随机数范围也是可以改动的。若rand()%100改为rand()%1000,则随机数范围在1--1000

对于rand和srand的具体讲解,可以参考 fttps://www.runoob.com/w3cnote/cpp-rand-srand.html

猜数字游戏总代码:

#include<stdio.h>

#include<stdlib.h>
#include<time.h>
void menu()
{
    printf("*********************************\n");
    printf("********    1.play      *********\n");
    printf("********    0.exit      *********\n");
    printf("*********************************\n");
}
void game()
{
    int guess = 0;
    //num是编译器随机生成的随机数,rand()可产生随机数
    //rand()产生随机数的范围为0--32767
    //若把随机数范围控制在1--100,让产生的随机数%100+1即可
    int num = rand()%100+1;//将产生的随机数控制在1--100
    while (1)
    {
        scanf("%d", &guess);
        if (guess > num)
        {
            printf("猜大了!\n");
        }
        else if (guess < num)
        {
            printf("猜小了!\n");
        }
        else
        {
            printf("猜对了!\n");
            break;
        }
    }
}
int main()
{
    int input = 0;
    srand((unsigned int)time(NULL));//设置 rand() 产生随机数时的随机数种子,利用时钟作为随机数的种子
    do
    {
        menu();//打印菜单
        printf("请选择:");
        scanf("%d", &input);
        switch (input)
        {
        case 1:
               printf("进入游戏,请猜数字:");
               game();//调用game函数实现猜数字游戏
               break;
        case 0:
               printf("退出游戏!\n");
               break;
        default:
               printf("选择错误,请重新选择:\n");
               break;
        }
            
    } while (input);//输入的若是0,退出游戏,循环结束
}

总结:

真正的猜数字游戏的核心在于编译器产生随机数,并且每次运行所产生的随机数不同,需要用到函数rand和srand,rand用来产生随机数,srand用来初始化rand随机数种子,把时钟作为随机数种子,每次运行程序的时间不同,从而每次产生的随机数是不同的。

整篇就到这里了,本人初学C语言,若该文章有什么问题,欢迎大佬们留言给予建议!谢谢大家的阅览!

如何用c语言实现猜数字游戏?相关推荐

  1. C语言编写猜数字游戏及随机数生成方法

    C语言编写猜数字游戏及随机数生成方法 文章目录 C语言编写猜数字游戏及随机数生成方法 前言 一.猜数字小游戏 内容: 步骤: 代码的实现: 二.随机数生成的方法 总结 前言 对于C语言初学者来说,当我 ...

  2. c语言程序设计 猜数字,C语言程序设计(猜数字游戏)报告.doc

    C语言程序设计(猜数字游戏)报告 <高级语言程序设计>课程设计 题目:班级:09R3 学生姓名:谢泽雄 学生学号:200931000622 指导老师:提交时间:华南农业大学信息(软件)学院 ...

  3. c语言编程题猜数字游戏6题,c语言编程—猜数字游戏.doc

    c语言编程-猜数字游戏 计算机实习报告 面向过程编程 用C语言求解实际问题 一.问题描述 游戏类第15个任务--猜数字游戏 计算机从0-9这10个数字中任意选择n个不重复数字(n≤10)组成一个5位数 ...

  4. c语言猜数字游戏用while,用C语言实现猜数字游戏

    本文实例为大家分享了C语言实现猜数字的具体代码,供大家参考,具体内容如下 问题:计算机随机生成一个数字,用户进行猜数字,当用户猜错时,提醒用户猜高/猜低,直到用户猜的数字与计算机给的随机数一致时,提示 ...

  5. C语言实现猜数字游戏(通俗易懂)

    文章目录 前言 一.代码思路: 1.游戏菜单: 2.主函数: 3.游戏函数: 二.游戏总体代码: 结尾: 前言 首先规划一下我们的猜数字游戏: 数字给定(1-100)的随机值,生成随机值的方法之前有讲 ...

  6. 用python做C语言的猜数字游戏,[Python3 练习] 007 简单的猜数字小游戏

    题目:简单的猜数字小游戏 (1) 描述 程序随机生成一个数字,玩家用键盘输入所猜数字,在规定次数内猜对为胜. (2) 要求 程序随机生成一个 1 到 100 的自然数 有 7 次机会去猜 机会用尽之前 ...

  7. 【C语言】第一个C语言项目——“猜数字”游戏(内附源码)

    君兮_的个人主页 勤时当勉励 岁月不待人 C/C++ 游戏开发 Hello米娜桑,这里是君兮_,今天又抽空为大家更新我们的主线0基础C语言啦!鉴于最近讲解了非常多的选择语句与循环语句,咱们今天就来讲讲 ...

  8. 【C语言】-猜数字游戏

    目录 一.猜数字游戏 1.什么是猜数字游戏? 2.怎么实现猜数字游戏? 1>.分析需要的功能 2>.随机数的产生 3>.system()函数 4>.总代码 二.猜数字游戏+关机 ...

  9. c语言作业 猜数字游戏,C语言实现猜数字小游戏

    本文实例为大家分享了C语言猜数字的具体代码,供大家参考,具体内容如下 一.描述 猜数字游戏. 二. 程序 使用srand((unsigned)time(NULL)),产生随机数种子. int rand ...

  10. 喵呜:C语言实现猜数字游戏

    编写代码实现,模拟用户登录情景,并且只能登录三次.(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序.) 猜数字游戏实现 1.生成一个随机数 2.猜数字(猜大.猜小.猜对 ...

最新文章

  1. Xcode 创建.a和framework静态库(转)
  2. php根据当前日期判断法定节假日_判断日期是否为法定节假日的API接口与示例函数...
  3. 微信小程序之redirectTo、switchTab和navigateTo
  4. 3.【练习题】构造方法与重载 定义一个网络用户类,要处理的信息有用户ID、用户密码、email地址。拓展:判断密码长度
  5. 基于Guava API 轻松落地观察者模式
  6. 【数据结构与算法】多种语言(VB、C、C#、JavaScript)系列数据结构算法经典案例教程合集目录
  7. python设置tk退出_退出tkinter gui
  8. ionic3 html调用摄像头,Ionic3项目实战
  9. spring 常用注解汇总
  10. python画素描画_画画了,画画了,几行Python就成一幅素描画
  11. 相亲交友小程序开发方案及源码
  12. 你会用JSON.stringify()?
  13. linux驱动调试方法
  14. C语言编写游戏的程序教程,用C语言写贪吃蛇游戏图文教程
  15. Java 数据持久化系列之JDBC
  16. 数据仓库设计--- 如何设计一个星型模型(示列)
  17. SS, SP, BP 三个寄存器
  18. 【node】升级 Node 版本教程
  19. 基于TCP/IP的套接字服务器端和客户端编程
  20. 没有期刊申请清华博士_清华大学不再硬性要求博士生毕业发表期刊论文,对博士有何影响?...

热门文章

  1. wamp 升php7,wamp升级php7
  2. als算法参数_ALS算法实现用户音乐打分预测
  3. 这样学编程,直接原地起飞啊!
  4. 什么是路由守卫?有什么用?
  5. elementUI中table的表头设置提示tooltips
  6. 使用 Java 解逻辑题
  7. Flash Player去广告下载地址
  8. PostgreSQL数据库统计信息——analyze命令
  9. 对promise、resolve和reject的简单理解
  10. 计算机专业怎么说才能高大上,搞笑!如何把自己的职业说的高大上