about srand and rand

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

1个回答

  • 首先第一点,C里面提供的随机数函数rand(),叫伪随机数,它是由一个函数生成的,一般用前一个随机数来生成后一个随机数。第一个被用来生成随机数的数叫做随机数种子。
  • 在c中srand是指定了随机数种子。
  • 也就是说,如果你在每次srand提供了同样的数的话(比如说,每轮游戏的开始,用同一个数srand了),随后它产生的随机数序列是一模一样的,一直到你下一次的srand。
  • 为了解决这个问题,一般每次产生一组随机数之前,用一个肯定不会重复的数值来执行srand,比如时间。
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!