IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 【C语言】如何创建一个简单的猜数字游戏 -> 正文阅读

[C++知识库]【C语言】如何创建一个简单的猜数字游戏

前言

今天,我们来玩猜数字游戏。猜数字游戏综合我们近期所学的循环、分支等语句,帮助我们巩固知识,同时还涉及随机数的生成、时间戳和一些库函数的认识,还有一些常见错误的分析。

要求

  1. 程序会提高菜单供你选择(玩/不玩)
  2. 随机数生成范围为1~100
  3. 猜数字,猜对、猜大、猜小都有提示
  4. 可以支持反复玩

思路

菜单

  1. 首先,你得提供一个菜单给读者选择。我们可以给一个函数,用来打印菜单,同时提供选项。在这里插入图片描述

调用menu函数只是打印菜单,不用传参,不用返回。

  1. 因为游戏支持反复玩,这就涉及到我们的循环了,那用哪种循环?答案是do while。因为do while不管三七二十一,上来就是执行,我们把打印菜单的函数放在do whlie里面,这就方便我们每次循环都先打印菜单。同时提示输入数字。
    在这里插入图片描述

这里可能就有人问:南木啊,你为啥把input定义在do while外面,为啥没写循环的判断条件?别急,慢慢来,后面会讲到。

  1. 根据选择,给予不同的回应,这时就得用我们学过的分支语句。那用哪种分支语句?用switch。用if也不是不可以,只是用switch更方便。
    在这里插入图片描述
  1. 当你输入1时,进入函数(这个函数是用来写游戏部分的主要内容的)
  2. 当你输入0时,就退出游戏
  3. 当你输入其他数时,就重新选择
  1. 把input作为判断条件,就可以看出input的作用了。当它是0就结束选择,同时结束循环,程序结束,当它是非0,它就还在循环里面。这一切的前提就是input必须在do while外面,不然会因为input作用域问题而无法使用。在这里插入图片描述

以上是主函数部分,接下来是游戏部分。

生成随机数。

  1. 首先介绍下生成随机数的函数rand在这里插入图片描述

作用:生成一个随机数
参数:无
返回值:随机数
头文件:#include<stdlib.h>
随机数的范围:0~RAND_MAX(65535)

例子
在这里插入图片描述

但细心的朋友肯定会发现,程序每次执行得到的数字都是相同的。
如41、18467、6334等等。这是为什么?在rand函数介绍中,提到我们要使用srand。那么它的作用又是什么?

  1. srand函数的介绍和作用
    在这里插入图片描述

作用:初始化随机数。
参数:seed是种子的意思。
返回值:无
头文件:#include<stdlib.h>
意思你传个无符号的种子过去,它给你设置一个固定随机值。这个种子可以是任意无符号的整形。

例子
在这里插入图片描述

这又是为什么?
在srand的介绍中提到,建议我们使用变化的值作为种子,这样我们每次调用函数时,初始化rand得到就是不同的值。
那如何得到一个变化的值?有朋友就说那就把rand()函数的返回值作为参数传给srand,你可真是个小天才。这样不就死循环了,是不允许的。
这就又又涉及一个新的知识点:时间戳。(放心,这个很容易理解)

  1. 时间戳
    在这里插入图片描述
  2. time函数的介绍
    在这里插入图片描述

作用:返回现在的时间即时间戳
参数:整形指针
返回值:时间戳
头文件:#include<time.h>

例子在这里插入图片描述

大家又有了新的疑惑,为什么参数设置为NULL(空指针)?其实使不使用没关系,它照样会返回空指针。那为什么我们得到的随机数这么相近或者相等?这是因为我们每次调用game()函数都重新设置一个随机数生成器(srand(time(NULL)))。这时我们就得把srand函数放在主函数中,让它设置一个随机谁的起点就够了。

在这里插入图片描述
5. 提示猜数字,并且判断猜对,猜大还是猜小了
在这里插入图片描述

设置一个循环,只有当猜对了才跳出循环,不对的话就继续猜

  1. 获得1~100的数字
    我们都知道数字太大得猜到猴年马月,那该如何获得1~100之间的的数字?很简单,只需把获得的数字%100+1即可。在这里插入图片描述

%100一定会得到0~99之间的数,再加上1就是1 ~100之间的数。


搞了这么久,终于可以猜数字了,接下来是我们的测试环节。
很尴尬,我不知道怎么插入视频,所以我们还是看照片吧
在这里插入图片描述


今天的分享就到这了,如果还有什么不懂或者不对的地方,请评论告诉我,我会尽快回复,谢谢!

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:35:34  更:2022-10-31 11:39:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 5:05:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码