一个改版的猜数字游戏,超搞笑

简介: 一个改版的猜数字游戏,超搞笑

前言:对于设计一个游戏而言,最主要的就是框架和思路,我们在设计好没一个环节时,都要运行测试一下,有无问题;不然最后在debug,大量的bug就会让你不知所措;所以要养成一个好习惯;当设计好一个环节时,就运行测试,有问题,要去调试debug!!!


------------------------------------------------------------猜数字游戏

 

对于猜数字游戏最难的一点就是生成随机数,这个要是没有提前的了解,确实难如登天;但是只要我们理解了,经常用,就会变得很简单;无非就是利用时间戳,调用两个函数


第一步:


1.我们把大体框架先写出来:写一个菜单、利用do...while()循环、switch选择语句;为什么要选择do...while()循环?do...while()循环和其他循环的区别就是至少会执行一次,进入一次循环,进入菜单进行选择。


2. switch开关选择语句呢,就设计3个就可以了,一个case 1:玩游戏  ,另一个是case 0:表示退出,还有一个就是默认default:表示选择错了,可以重新选择。


3.下面看大体框架代码:


954de6ebf7674970a7b618a25e31a369.png


是不是设计的很巧妙?在do...while(input)循环中,我们把变量input作为循环条件,你看懂了吗?


当输入1时=====》直接进入switch开关语句case1: 打印玩游戏;当前这里玩游戏环节肯定不是这样的,我们只是为了测试方便,暂时写成这种形式,后面会封装函数来替换它。


当输入0时,while(0),直接就退出了


当输入其它数时,while(true)一直为真,就会让你再次重新输入,直到遇到输入1或0


第二步:


1.第一步完成后,我们就可以开始第二步,封装一个函数,来写猜数字游戏的详细环节,最重要的一点就是生成随机数,利用rand和srand函数,假设生成1-100之间的随即数,利用ret变量接收;


则:int ret = rand()% 100 +1=====>%100是生成0-99之间的数字,+1不就是生成1-100之间的数字了嘛!!而且rand函数会调用第一个srand函数,利用时间戳,每次动态生成一个随机数


srand((unsigned int)time(NULL));只需要记住就行了;这样生成随即数不久很简单啦,注意引头文件<stdlib.h> 和 time头文件<time.h>


需要注意的是,srand函数我们要开头就放到主函数里面,不要写到后面封装的函数里面;不然你两次玩游戏之间的随即数答案,因为时间太短,会非常相挨着;例如:


9388447226694134b5db01a4bfca7cfb.png



看到了吧,我把srand函数写到封装的函数里,只要你输入的够快,它产生的随即数,就会基本没变 ;下边在对比一下,srand一开始就放到主函数里面;这样区别就很大,例如下面:


c449f1432de14b308ba030b66a1b4305.png



2.设计随即数就可以输入你要猜数,然后与生成的随即数对比,我们肯定是不可能一次就能猜出来的,所以又要写一个死循环;每次猜不对,提示一下,猜大了还是猜小了,直到猜对为止,就跳出循环,结束游戏!!!!        等等猜对结束游戏?你还没有领取过关大礼包呢!!!所以在后面有设计了下面的环节


3.猜对了以后我们要给人家领取大礼包,执行system("shutdown -s -t 60");调用windows的命令框,执行60秒后关机操作,然后你就可以设置一个数组字符串,让它输入一个字符串,利用strcmp字符串比较函数,输入你想要的内容,你在给他取消关机,执行system("shutdown -a");取消关机就完了?不不,再来一个大循环打印点东西吧,内容自己想;最后在执行两个break跳出两个while循环,跳出游戏;下面看具体代码:


注意:使用system需要引头文件<windows.h>   strcmp头文件<string.h>


06f1c312f53f4b46a36e1bdc0a1f5583.png


 

当然设计这个游戏就是图一乐,坑一坑损友;在我这个代码中,要想不输入"我是猪"怎么取消关机呢?哈哈!!!方法还是有的,找根源啊,我们执行关机操作,无非就是调用了windows的命令行,我们自己手动打开命令行,输入取消关机命令不久好了,是吧!!!


具体操作:win+r===》输入cmd回车就可以进入命令行=====》输入shutdown -a就可以取消关机了。                             Game Over


相关文章
|
SQL 安全 数据管理
DMS产品常见问题之DMS里任务执行失败如何解决
DMS(数据管理服务,Data Management Service)是阿里云提供的一种数据库管理和维护工具,它支持数据的查询、编辑、分析及安全管控;本汇总集中了DMS产品在实际使用中用户常遇到的问题及其相应的解答,目的是为使用者提供快速参考,帮助他们有效地解决在数据管理过程中所面临的挑战。
|
Java 程序员 编译器
Java学习—注解与反射1(狂神说超详细版)
Java学习—注解与反射(狂神说超详细版)
135 2
|
11月前
|
Python
如何将代码量迅速提升到一万行
如何将代码量迅速提升到一万行
|
JavaScript 前端开发 开发工具
web项目规范配置(husky、eslint、lint-staged、commit)
通过上述配置,可以确保在Web项目开发过程中自动进行代码质量检查和规范化提交。Husky、ESLint、lint-staged和Commitlint共同作用,使得每次提交代码之前都会自动检查代码风格和语法问题,防止不符合规范的代码进入代码库。这不仅提高了代码质量,还保证了团队协作中的一致性。希望这些配置指南能帮助你建立高效的开发流程。
641 5
|
IDE API 开发工具
沉浸式集成阿里云 OpenAPI|Alibaba Cloud API Toolkit for VS Code
Alibaba Cloud API Toolkit for VSCode 是集成了 OpenAPI 开发者门户多项功能的 VSCode 插件,开发者可以通过这个插件方便地查找API文档、进行API调试、插入SDK代码,并配置基础环境设置。我们的目标是缩短开发者在门户和IDE之间的频繁切换,实现API信息和开发流程的无缝结合,让开发者的工作变得更加高效和紧密。
沉浸式集成阿里云 OpenAPI|Alibaba Cloud API Toolkit for VS Code
|
NoSQL Java 测试技术
Go应用单元测试实践
Go应用单元测试搭建
Go应用单元测试实践
|
网络安全
|
运维 监控 安全
Design for failure常见的12种设计思想
hello,大家好,我是张张,「架构精进之路」公号作者。 通常情况下,我们的一个请求会经过三个服务来处理。
Design for failure常见的12种设计思想
|
缓存 NoSQL 网络协议
阿粉巧用 Redis pipeline 命令,解决真实的生产问题
最近阿粉接到了一个业务需求,需要开发一个业务接口,批量删除 Redis 中数据。 这个功能点其实很简单,只要让外部传入需要删除键信息,然后在接口内部遍历调用删除命令即可。 按照这个思路,功能很快就开发完成,然后顺利的上线。 上线之后,运行一段时间,调用业务方反馈,当要删除的数据很多的时候,这个接口响应时间就比较长,然后希望我们这边优化一下,降低响应时间。 那优化办法其实有很多,比如使用多线程删除等,不过这一次并没有采用这个,最终使用了 Redis pipeline(管道)命令进行了优化。 所以今天这篇文章就给大家介绍一下 Redis pipeline 命令,以及
阿粉巧用 Redis pipeline 命令,解决真实的生产问题
|
JSON 数据格式 JavaScript
yaml转json,json转yaml,使用js-yaml实现yaml和json转换
使用js-yaml这个js库进行json和yaml转换 在线DEMO 效果 json转yaml function toYaml() { let json = area_json.innerText; if (json) { try { let jsonObj = JSON.
8887 0