Вниз
Скачать: CL | DM;

Циклы...   Найти похожие ветки 

 
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.024 c
6-1105444565
Grant
2005-01-11 14:56
2005.03.20
TClientSocket &amp; TServerSocket


3-1108720041
Вудупипл
2005-02-18 12:47
2005.03.20
как зеркалировать FB


14-1109604649
AG.Smit
2005-02-28 18:30
2005.03.20
Проблема с мобилой Sony Ericsson T610


14-1109258201
kesha
2005-02-24 18:16
2005.03.20
"Login" по русски


3-1108621977
Evyshka
2005-02-17 09:32
2005.03.20
Нарастающий итог




   Наверх