Конференция "Игры" » Функция RANDOM [Delphi]
 
  • Rerd (29.09.07 08:15) [0]
    У меня имеется 10 картинок jpg. Как сделать чтобы при нажатии на кнопку в Image загружалась случайная картинка из папки, но чтобы они не повторялись (пока я не нажму 10 раз кнопку).
  • To Rerd (29.09.07 08:24) [1]
    Считать клики и запоминать уже загружавшиеся картитнки
  • homm © (29.09.07 08:42) [2]
    var
     nums: array [0..9] of Integer;
     i, j, r: Integer;
    begin
     Randomize;
     for i := 0 to 9 do
       nums[i] := i;
     for i := 0 to 9 do begin
       r := Random(10-i);
       showmessage(inttostr(nums[r])+'.jpg');
       for j := r to 10-i-2 do
         nums[j] := nums[j+1];
     end;
    end;

  • Snane (29.09.07 10:54) [3]
    Thank's
  • Denis_ © (29.09.07 16:11) [4]
    А как же негласное правило "код сразу не давать"? :)
  • homm © (29.09.07 21:19) [5]
    > [4] Denis_ ©   (29.09.07 16:11)

    А код, что я дал и не делает то, что описано в [0]. Он позволяет лишь разобраться в алгоритме получения неповторяющихся чисел.
    Вот если бы потом последовал вопрос, как сделать то-же самое по нажатию кнопки, другой разговор.
  • Denis_ © (30.09.07 11:15) [6]

    > homm ©   (29.09.07 21:19) [5]

    А потом ещё и вопрос "А как это связано с картиками?", да?:)
  • No_ise (19.10.07 16:02) [7]
    можно назвать картинки от нуля до десяти. После I:=Random(9); потом form1.image1.picture:='c:\'+i;
  • @!!ex © (19.10.07 17:38) [8]
    > [7] No_ise   (19.10.07 16:02)

    Типа повторятся они не будут? :)))
    LOl.
  • DeBUGger13 © (19.10.07 18:18) [9]
    Ладно, вообщем есть другое решение данной ситуации!
    Можно использовать динамический массив(можно список{TList})
    1.Занести туда все имена файлов(Или непосредственно картинки).
    2.Загрузить картинку и удалить этот элемент массива(Теперь будем выбирать из остальных).
    3.Как только Count=0 Загружаем Всё обратно(к п.1)
    Типа того///
  • Vendict © (19.10.07 18:25) [10]

    > Ладно, вообщем есть другое решение данной ситуации!


    здорово. зачем нам молоток ? мы лучше микроскопом гвоздь забъём )
  • No_ise (19.10.07 18:35) [11]

    > Типа повторятся они не будут? :)))

    будут для этого выше написан код для не повторений
  • DeBUGger13 © (19.10.07 18:51) [12]
    Я понимаю, шо мой вариант громоздкий, использует слишком много ресурсов и тд,
    но его не только для данной ситуации можно юзать...(Например, кол-во картинок не известно или это другие элементы ...)
  • Плохиш © (21.10.07 13:35) [13]
    Про random уже сказали :-) Ещё стоит добавить randomize и TStringList, у которoго требуются методы Assign, Delete и свойство Count...
  • Pa5ha © (21.10.07 20:31) [14]
    Можно генератор псевдослучайных чисел заюзать. Там тоже не повторяюца. Правда порядок следования будет всегда один и тот же, если с параметрами не замутить чего-нить. Давно дело было, деталей не помню уже :)
  • klesha28 (18.03.08 01:25) [15]
    Можно ещё массив перемешать - как в плейлистах плейеров.
    (пробежать один или более раз по массиву, перемешивая рандомно элементы)
 
Конференция "Игры" » Функция RANDOM [Delphi]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]