首页 > 其他分享 >简单的猜数字游戏

简单的猜数字游戏

时间:2023-01-10 17:04:33浏览次数:40  
标签:游戏 一组 srand 41 随机数 简单 生成 数字

猜数字游戏的难点肯定是生成随机数,我现在只学了一种伪随机生成的办法,顺便分享一下学习中调用函数的感悟。

首先,我从网上得知使用rand函数生成随机数,于是我打开了cplusplus,去参考那里看了一下

简单的猜数字游戏_时间戳

当时我没有管srand,却发现了一个问题,我第一次打开游戏时它可以给我随机数,但是第二次打开的时候依然给我一模一样的随机数。而在例子前面都会配合srand,于是我去查找了srand

简单的猜数字游戏_随机数_02

于是我对srand进行了探索

简单的猜数字游戏_随机数_03

当我把srand放在循环里,括号里是1的时候rand就会随机生成41,2的时候就是45,如果使用时间戳让括号里面一直变化的话,那就是很相邻的顺序数字。

简单的猜数字游戏_随机数_04

而我把它放在外面的话,它就会生成以41开头的一组随机数,为什么说是一组呢,我发现当第一个数字是41的话,下一个数就会是18467,同理,如果srand括号里是2的话它就会生成以45开头的一组随机数。而我在括号里设置时间戳的话,那么就会生成不同的开头数字,那么以开头数字为一组的随机数也固然是不同的,所以说它并不是完全随机,是伪随机生成。

回过头想,当我没有设置srand函数时,rand就会默认开头数是41(srand(1))所以我每次再次打开游戏时第一个数就是41,那么这一组随机数就是固定不变一摸一样的了。

而如果你把srand放在循环里面,那么每次玩都调用,那么它的随机数将是顺序增加,例如我把1变成2,那随机数就是41,45。

最好就是把srand放在循环外面,每一次重新进入程序的时候将第一个数字改变一下,这样就会生成一组随机数,且因为第一个数字不同,自然就不同。

这就是我今天学到的伪随机生成随机数,以后会有办法来解决这个问题,期待以后的学习。


标签:游戏,一组,srand,41,随机数,简单,生成,数字
From: https://blog.51cto.com/u_15930338/6000457

相关文章

  • K8s 安装、部署与卸载(简单版本)
    安装了好几天,感觉网上大佬都是骗人的,后来又发现大佬们并没有骗人,只不过一些详细的地方没有细说,走了好多弯路啊o(╥﹏╥)o,后来慕课网找了视频才进入了正道,接下来搞个简单版本......
  • 如何制作一个羊了个羊游戏2:随机生成卡牌
    本文首发于微信公众号【小蚂蚁教你做游戏】,欢迎关注领取更多学习做游戏的原创教程资料,每天学点儿游戏开发知识。嗨!大家好,我是小蚂蚁。上一节教程里我们实现了游戏中最难的地......
  • Kafka的简单使用
    ......
  • 快速创建精彩的Flash游戏 (二) Flash3D引擎简介
    ​ 从FlashPlayer5开始,3D开发者就尝试做一些伪3D的演示;FlashPlayer6时代,引入了DrawingAPI,大大方便了开发者进行图形绘制;2006年引入AS3,开始改变很多Web游戏的规模;Fla......
  • 新手入门游戏策划
    一、游戏策划的工作范围一般来说,游戏的制作有三个大的单位部门,分别是策划部门、程序部门和美术部门。这三个部门在游戏开发的过程中分别承担不同的工作。策划部门主要......
  • 转 浏览器中 F12 功能的简单介绍
    转  浏览器中F12功能的简单介绍浏览器中F12功能的简单介绍 原创          学而不思则罔,思而不学则殆   网址https://blog.51cto.com/u......
  • 适合编程初学者的开源项目:小游戏2048(微信小程序版)
    目标为编程初学者打造入门学习项目,使用各种主流编程语言来实现。2048游戏规则一共16个单元格,初始时由2或者4构成。1、手指向一个方向滑动,所有格子会向那个方向运动。2......
  • FPGA:数字电路简介
    数字电路的历史数字电路是数字计算机和自动控制系统的基础,它的发展是以电子器件的发展为基础的,器件的发展可以大致上分为3个阶段:电子管(1906年)晶体管(1947年)集成电路(Integrate......
  • python实现简单的snake game!
    实验环境:python3.8,pycharm需要的库:pygame,random需要下载64位对应python37版本的pygame网址https://pypi.org/project/Pygame/1.9.4/#files这里贴个安装方法。对代码的解......
  • dremio ctas 内部原理简单说明
    ctas从使用上就是一个sql操作,dremio会基于sql生成逻辑计划,然后到物理计划,之后到执行计划,然后会转变为对于支持写入操作数据源的操作(目前包括了parquet格式以及icebe......