我做了个贪吃蛇程序,里边有food 和snake。
每次snake吃掉food之后,就需要重新生成一个。我是用srand和rand来生成的,
生成之后判断一下有没有跟snake重合,如果重合,则重新生成一个。
现在问题来了,有的时候这个过程会非常慢,我觉得是rand的时候有一定几率某几次总是生成在某个数附近,造成一直跟snake重合。
我想问,是我用rand和srand用的不对吗,还是有更好的方法?
求大神指教
about srand and rand
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- 不是阿尔伯特 2015-05-19 08:19关注
- 首先第一点,C里面提供的随机数函数rand(),叫伪随机数,它是由一个函数生成的,一般用前一个随机数来生成后一个随机数。第一个被用来生成随机数的数叫做随机数种子。
- 在c中srand是指定了随机数种子。
- 也就是说,如果你在每次srand提供了同样的数的话(比如说,每轮游戏的开始,用同一个数srand了),随后它产生的随机数序列是一模一样的,一直到你下一次的srand。
- 为了解决这个问题,一般每次产生一组随机数之前,用一个肯定不会重复的数值来执行srand,比如时间。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题