Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизЦиклы... Найти похожие ветки
← →
Knoxville (2005-03-02 18:34) [0]Ув. Мастера! Помогите! У меня такая проблема:
Вот код:for i := 0 to 4 do
begin
j := Random(10);
k := Random(5);
if FindImg(j, k).Visible <> True then
begin
FindImg(j, k).Visible := True;
end;
end;
FindImg - это моя ф-ция, которая по 2-м цифрам находит определенный TImage.
Смысл: есть TImage, все невидимы. Цикл должен показать 5 случайных имажей, если они еще не показаны. Проблема: если случайный TImage уже показан, то цикл проходит мимо и в итоге показывает не 5, а 4 TImage или еще меньше! Можно ли как-то уменьшить число i или прокрутить цикл снова?
Спасибо всем!
← →
P.N.P. © (2005-03-02 18:39) [1]i:=0;
while i<5 do
begin
j := Random(10);
k := Random(5);
if FindImg(j, k).Visible <> True then
begin
FindImg(j, k).Visible := True;
inc(i)
end;
end;
← →
DiamondShark © (2005-03-02 18:40) [2]Пора вывесить где-нибудь выгравиранным на бронзовой доске алгоритм генерации неповторяющейся случайной последовательности:
Заполнить массив последовательными значениями;
Перетасовать массив;
Вибирать последовательно значения.
← →
GLFox (2005-03-02 18:41) [3]Используй while...do или repeat...until
← →
palva © (2005-03-02 18:46) [4]Внутри цикла for изменять переменную цикла запрещено.
← →
Knoxville (2005-03-02 18:47) [5]GLFox: Что-то repeat не помогает!
← →
P.N.P. © (2005-03-02 18:48) [6]>palva © (02.03.05 18:46) [4]
Где там изменение переменной? :)
← →
DiamondShark © (2005-03-02 18:49) [7]
> Knoxville (02.03.05 18:47) [5]
> GLFox: Что-то repeat не помогает!
Значит звёзды не сложились.
← →
Knoxville (2005-03-02 18:50) [8]palva:
Я знаю! Вот почему и спрашиваю.
Вобщем спасибо всем! Идеи с массивом и while очень хорошие!
← →
Knoxville (2005-03-02 18:51) [9]palva:
Я знаю! Вот почему и спрашиваю.
Вобщем спасибо всем! Идеи с массивом и while очень хорошие!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c