Начал писать программу, но столкнулся с 2-мя проблемами:
1) Почему-то не могу проверить действие программы, вылезает какая-то ошибка и написано Disk is not ready in E:, хотя с диском E: он по идее вообще не должен соприкасаться. И поэтому я даже незнаю должны ли уже объекты выводится на экран ...

2)не могу задать движение рыбам, не знаю как сделать, чтоб рыбы двигались по сложной траектории(а не просто в 8 сторон)
Помогите пожалуйста, вот текст программы:
Unit fish1;
interface
Uses graph,crt;
type
TOzero=object
constructor Init(GrDr,GrMd:integer);
end;
Tfish=object
x,y:integer;
colour:byte;
xSpeed,ySpeed,napr:integer;
ftype:byte;
constructor init;
procedure Show(Flag:boolean); virtual;
procedure Move;
end;
TFishgood=object(TFish)
Constructor init;
procedure Show(flag:boolean); virtual;
Procedure Move;
end;
TFishbad=object(TFish)
Constructor Init;
Procedure Show(flag:boolean); virtual;
Procedure Move;
end;
var
Aqua:TOzero;
implementation
constructor TOzero.init(GrDr,GrMd:integer);
begin
GrDr:=detect;
Initgraph(GrDr,GrMd,'D:\BP\bgi');
setcolor(15);
rectangle(GetMaXX-400,GetMaXY-300,GetMaXX,GetMaXY);
end;
constructor TFish.init;
begin
x:=Random(GetMaXX-400)+400;
y:=Random(GetMaXY-300)+300;
colour:=random(15)+1;
xSpeed:=5;
ySpeed:=5;
napr:=1;
ftype:=0;
Show(True);
end;
constructor TFishgood.Init;
begin
inherited Init;
ftype:=1;
end;
constructor TFishbad.Init;
begin
inherited Init;
ftype:=2;
end;
procedure Tfishgood.Show(Flag:boolean);
begin
if Flag then
Setcolor(10)
else
Setcolor(GetBkColor);
MoveTo(x,y);
LineTo(x-40*napr, y+7*napr);
LineTo(x-40*napr, y-7*napr);
LineTo(x,y);
end;
procedure Tfishbad.Show(Flag:boolean);
begin
if Flag then
Setcolor(4)
else
Setcolor(GetBkColor);
MoveTo(x,y);
LineTo(x-10*napr, y+10*napr);
LineTo(x-10*napr, y-10*napr);
LineTo(x,y);
end;
procedure TFish.Move;
begin
end;
procedure TFishgood.Move;
begin
end;
procedure TFishbad.Move;
begin
end;
procedure tFish.Show;
begin
end;
end.