| |
|
开发:
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.整体框架进入程序,输入1开始猜数字,输入0退出游戏,此处可用switch-case执行分支; 要使游戏至少能进行一次,可以使用do? while循环; 这样可以先写出整体框架:
2.简易菜单打印一个简易菜单,创建一个菜单函数:
到这里游戏的基本框架就有了 运行: 3.游戏逻辑3.1随机数字的生成在C语言中,有专门生成随机整数的函数,那就是rand函数 rand函数返回的是0~RNAD_MAX之间的整数值 转到定义,可以看到RAND_MAX代表的十六进制数字 7fff 转换为十进制就是32767 那就明白了: rand()随机生成0~32767之间的整数 按照思路创建game函数:
运行几次: ? 发现每次生成的数字都是相同的, 每次生成的数字是相同的?那可没意思, 怎么解决这个问题呢? 其实rand函数并不是这么使用的,我们忽视了一个关键点: 那就是在使用rand函数之前要调用srand函数来设置随机数的生成器 要调用srand函数,找到关于srand函数的信息 应用srand要返回一个整数值 下面随机给srand一个整数并运行程序: 诶? 如果给srand的值是固定的,那生成的数也是固定的 反过来想,如果给srand的值不是固定的,那生成的数不就不是固定的了吗?也就是实现了随机数的生成 问题又来了,有没有随时变化的值? 没错,那就是时间 于是我们引入一个概念:时间戳 恰好 C语言中,time函数会返回时间戳 time_t本质上就是整形,这里不做过多阐述 需要注意的是time函数需要的是time_t* ,也就是指针 而我们对返回的值没有确界要求,只要让time返回一个数就可以了 那我们给空指针NULL
此时出现了警告: 解决方法很简单,把time强制转化成unsigned int就好 于是就有了:
?加入game函数:
运行几次: 问题双来了: 每次生成的数字都很接近,尤其是前后选择时间较短的时候 原因是每次选择都会调用一次srand函数,相当于每次进行游戏都会重置起点 其实srand函数只要调用一次就行了,不需要频繁调用 通过把srand函数放到main函数开头就可以解决这个问题了 最后,我们需要的是1~100的整数 只需要把rand返回的值模100并+1就ok
3.2猜数字常规思路 输入并判断:
?猜大和猜小都需要重新猜,知道猜对为止 所以while循环给死,猜对跳出
4.最终成果展示
这游戏我能玩一天!!!? 如果你觉得这篇文章还不错并且对你有帮助,不妨动动手指点赞收藏加转发,给一个大大的关注 你们的每一次支持都将转化为我前进的动力!!! |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 12:55:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |