Random не работает должным образом внутри цикла - PullRequest
0 голосов
/ 28 апреля 2020
  • Извините, если это плохой вопрос, я работаю только с Pascal из-за некоторого домашнего задания компьютерного класса, где мы должны нарисовать картинку, используя Pascal *

Я в основном пытаюсь нарисовать звезды в случайных местах, проблема, с которой я сейчас сталкиваюсь, заключается в том, что когда я вызываю процедуру внутри al oop, рисуется только 1-2 звезды, хотя l oop работает 1000 раз.

Я пытался генерировать один за другим, нажимая кнопку, и это работало, поэтому я предполагаю, что это как-то связано с тем, что Random не работает должным образом внутри al oop.

     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;

1 Ответ

0 голосов
/ 28 апреля 2020

Удалить звонок на Randomize. При помещении в al oop он будет инициализировать генератор псевдослучайных чисел на основе системного времени, которое, возможно, не изменилось со времени предыдущего вызова.

Если вы хотите позвонить Randomize, позвоните один раз при запуске .

...