简单的猜数字游戏
发布时间:2023-01-17 09:51:54 269
相关标签:
猜数字游戏的难点肯定是生成随机数,我现在只学了一种伪随机生成的办法,顺便分享一下学习中调用函数的感悟。
首先,我从网上得知使用rand函数生成随机数,于是我打开了cplusplus,去参考那里看了一下
当时我没有管srand,却发现了一个问题,我第一次打开游戏时它可以给我随机数,但是第二次打开的时候依然给我一模一样的随机数。而在例子前面都会配合srand,于是我去查找了srand
于是我对srand进行了探索
当我把srand放在循环里,括号里是1的时候rand就会随机生成41,2的时候就是45,如果使用时间戳让括号里面一直变化的话,那就是很相邻的顺序数字。
而我把它放在外面的话,它就会生成以41开头的一组随机数,为什么说是一组呢,我发现当第一个数字是41的话,下一个数就会是18467,同理,如果srand括号里是2的话它就会生成以45开头的一组随机数。而我在括号里设置时间戳的话,那么就会生成不同的开头数字,那么以开头数字为一组的随机数也固然是不同的,所以说它并不是完全随机,是伪随机生成。
回过头想,当我没有设置srand函数时,rand就会默认开头数是41(srand(1))所以我每次再次打开游戏时第一个数就是41,那么这一组随机数就是固定不变一摸一样的了。
而如果你把srand放在循环里面,那么每次玩都调用,那么它的随机数将是顺序增加,例如我把1变成2,那随机数就是41,45。
最好就是把srand放在循环外面,每一次重新进入程序的时候将第一个数字改变一下,这样就会生成一组随机数,且因为第一个数字不同,自然就不同。
这就是我今天学到的伪随机生成随机数,以后会有办法来解决这个问题,期待以后的学习。
文章来源: https://blog.51cto.com/u_15930338/6000457
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报