• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

PascalABC: анимация

  • Автор темы Автор темы oleum
  • Дата начала Дата начала

oleum

Ученик
Регистрация
24 Фев 2014
Сообщения
4
Реакции
0
Баллы
0
PascalABC: анимация

Как сделать, чтобы частицы двигались....при открытии стенки разные частицы должны смешиваться....явление диффузии. Помогите пожалуйста.
Код:
program V;
uses crt,graphABC;
var
gas,gas2:array[0..19,0..1] of integer;
xh,xh2,yh:array[0..19] of integer;

i,j:integer;
begin
clrscr;
randomize;

    begin
    gas[i,j]:=random(50)+50;
    gas2[i,j]:=random(50)+150;
    gas[i,j+1]:=random(100)+50;
    xh[i]:=random(3)+1;
    xh2[i]:=random(3)+1;
    yh[i]:=random(3)-1;
    end;
for i:=0 to 19 do
begin
 setbrushcolor(clyellow);
circle(gas[i,j],gas[i,j+1],1);
 setbrushcolor(clred);
circle(gas2[i,j],gas[i,j+1],1);
end;
 setbrushcolor(clgreen);
line(45,47,205,47);
line(205,47,205,153);
line(205,153,45,153);
line(45,153,45,47);
line(125,48,125,152);
readkey;
 setbrushcolor(clblack);
line(125,48,125,152);
repeat
for i:=0 to 19 do
begin
 setbrushcolor(clyellow);
circle(gas[i,j],gas[i,j+1],1);
 setbrushcolor(clred);
circle(gas2[i,j],gas[i,j+1],1);
end;
delay(12000);
for i:=0 to 19 do
begin
 setbrushcolor(clblack);
circle(gas[i,j],gas[i,j+1],1);
circle(gas2[i,j],gas[i,j+1],1);
if (gas[i,j]>200) or (gas[i,j]<50) then xh[i]:=xh[i]*(-1);
if (gas[i,j+1]>150) or (gas[i,j+1]<50) then yh[i]:=yh[i]*(-1);
if (gas2[i,j]>200) or (gas2[i,j]<50) then xh2[i]:=xh2[i]*(-1);
gas[i,j]:=gas[i,j]+xh[i];
gas[i,j+1]:=gas[i,j+1]+yh[i];
gas2[i,j]:=gas2[i,j]-xh2[i];

    delay (600);
  
 

end;
until keypressed;

end.
 
Первая же ошибка, что видна - это здесь:

begin
gas[i,j]:=random(50)+50;
gas2[i,j]:=random(50)+150;
gas[i,j+1]:=random(100)+50;
xh:=random(3)+1;
xh2:=random(3)+1;
yh:=random(3)-1;
end;

Переменные i,j неопределены, т.е. им не присвоены значения
 
Назад
Сверху