Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.07.2011, 12:42   #1
zzz6
Пользователь
 
Регистрация: 10.06.2011
Сообщений: 60
По умолчанию Капли в дожде

Код:
uses graphABC,crt;
var t:array[1..2,1..50]of integer;
    i:integer;
begin
randomize;
hidecursor;
for i:=1 to 50 do
 begin
  t[1,i]:=random(windowwidth-40)+20;
  t[2,i]:=random(windowheight-40)+20;
 end;
repeat
lockdrawing;
clearwindow;
setpencolor(clAqua);
for i:=1 to 50 do
 begin
  circle(t[1,i],t[2,i],2);
  floodfill(t[1,i],t[2,i],clBlue);
 end;
redraw;
sleep(5);
for i:=1 to 50 do
 begin
  t[2,i]:=t[2,i]+5;
  if t[2,i]>windowheight then t[2,i]:=1;
 end;
until keypressed;
end.
как сделать так чтоб некоторые капли двигались медленнее, другие быстрее????
zzz6 вне форума Ответить с цитированием
Старый 07.07.2011, 12:50   #2
Leo08
Delphi master
Пользователь
 
Аватар для Leo08
 
Регистрация: 28.05.2011
Сообщений: 96
По умолчанию

Я когда эксперементировал с Вашим кодом случайно добился интересного эффекта, всего лишь добавив +Random(5). Вот, может заинтересует))
Код:
uses graphABC,crt;
var t:array[1..2,1..50]of integer;
    i:integer;
begin
randomize;
hidecursor;
for i:=1 to 50 do
 begin
  t[1,i]:=random(windowwidth-40)+20;
  t[2,i]:=random(windowheight-40)+20;
 end;
repeat
lockdrawing;
clearwindow;
setpencolor(clAqua);
for i:=1 to 50 do
 begin
  circle(t[1,i]+Random(5),t[2,i],2);
  floodfill(t[1,i],t[2,i],clBlue);
 end;
redraw;
sleep(5);
for i:=1 to 50 do
 begin
  t[2,i]:=t[2,i]+5;
  if t[2,i]>windowheight then t[2,i]:=1;
 end;
until keypressed;
end.
Ну а вот собственно Ваш исправленный код:
Код:
uses graphABC,crt;
var t:array[1..2,1..50]of integer;
    i:integer;
begin
randomize;
hidecursor;
for i:=1 to 50 do
 begin
  t[1,i]:=random(windowwidth-40)+20;
  t[2,i]:=random(windowheight-40)+20;
 end;
repeat
lockdrawing;
clearwindow;
setpencolor(clAqua);
for i:=1 to 50 do
 begin
  circle(t[1,i],t[2,i],2);
  floodfill(t[1,i],t[2,i],clBlue);
 end;
redraw;
sleep(5);
for i:=1 to 50 do
 begin
  t[2,i]:=t[2,i]+Random(5);
  if t[2,i]>windowheight then t[2,i]:=1;
 end;
until keypressed;
end.
БЯЯЯГГАААААА
Leo08 вне форума Ответить с цитированием
Старый 07.07.2011, 13:29   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну можно и такой ещё вариант посмотреть..
Код:
uses graphABC,crt;
var t:array[1..3,1..50] of real;
    i:integer;
begin
randomize;
hidecursor;
for i:=1 to 50 do
 begin
  t[1,i]:=random(windowwidth-40)+20;
  t[2,i]:=random(windowheight-40)+20;
  t[3,i]:= random()*2.5+2;
 end;
setpencolor(clBlue);
SetBrushStyle(bsSolid);
repeat
lockdrawing;
clearwindow;
for i:=1 to 50 do
 begin
  circle(round(t[1,i]),round(t[2,i]),2);
  //floodfill(t[1,i],t[2,i],clBlue);
 end;
redraw;
sleep(5);
for i:=1 to 50 do
 begin
  t[2,i]:=t[2,i]+t[3,i]{+Random(5)};
  if t[2,i]>windowheight then begin
     t[1,i]:=random(windowwidth-40)+20;
     t[2,i]:=1;
     t[3,i]:= random()*2.5+2;
  end;
 end;
until keypressed;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.07.2011, 14:29   #4
zzz6
Пользователь
 
Регистрация: 10.06.2011
Сообщений: 60
По умолчанию

действительно прикольно получилось)
zzz6 вне форума Ответить с цитированием
Старый 07.07.2011, 14:29   #5
zzz6
Пользователь
 
Регистрация: 10.06.2011
Сообщений: 60
По умолчанию

спасиба)))
zzz6 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц