FFFireuu 2015-05-19 07:39 采纳率: 0%
浏览 1559

about srand and rand

我做了个贪吃蛇程序,里边有food 和snake。
每次snake吃掉food之后,就需要重新生成一个。我是用srand和rand来生成的,
生成之后判断一下有没有跟snake重合,如果重合,则重新生成一个。
现在问题来了,有的时候这个过程会非常慢,我觉得是rand的时候有一定几率某几次总是生成在某个数附近,造成一直跟snake重合。
我想问,是我用rand和srand用的不对吗,还是有更好的方法?
求大神指教

  • 写回答

1条回答 默认 最新

  • 不是阿尔伯特 2015-05-19 08:19
    关注
    • 首先第一点,C里面提供的随机数函数rand(),叫伪随机数,它是由一个函数生成的,一般用前一个随机数来生成后一个随机数。第一个被用来生成随机数的数叫做随机数种子。
    • 在c中srand是指定了随机数种子。
    • 也就是说,如果你在每次srand提供了同样的数的话(比如说,每轮游戏的开始,用同一个数srand了),随后它产生的随机数序列是一模一样的,一直到你下一次的srand。
    • 为了解决这个问题,一般每次产生一组随机数之前,用一个肯定不会重复的数值来执行srand,比如时间。
    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题