随机在循环内无法正常工作

问题描述 投票:0回答:1
  • [很抱歉,这是一个不好的问题,由于某些计算机类作业,我们不得不使用Pascal绘制图片,因此我仅与Pascal合作*

我基本上是想在任意位置绘制星星,我现在面临的问题是,当我在一个循环内调用该过程时,即使该循环运行1000次,也只能绘制1-2个星星。

我已经尝试通过单击按钮来生成一个,并且它起作用了,所以我认为这与Random在循环内无法正常工作有关。

     randomize();

     i := 0;
      while i < 1000 do begin
         x := random(Image1.Width);
         y := random(Image1.Height);

         Ellipse(x, y, x+3, y+3);

         i += 1;
      end;

pascal lazarus
1个回答
0
投票

将呼叫转移到Randomize。当置于循环中时,它将根据系统时间重新初始化伪随机数生成器,自上次调用以来该时间可能没有更改。

© www.soinside.com 2019 - 2024. All rights reserved.