IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> ООП: Модель озера, помогите разобраться, Озеро
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Серёга

Репутация: -  0  +


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


 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Цитата
Почему-то не могу проверить действие программы, вылезает какая-то ошибка и написано Disk is not ready in E:, хотя с диском E: он по идее вообще не должен соприкасаться.
Проверь содержимое Options->Directories, скорее всего там происходит попытка либо читать либо писать (смотря в каком поле фигурирует этот путь) диск E:, и ошибка, когда "Drive not ready"
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Серёга

Репутация: -  0  +


Спасибо, с первым пунктом я разобрался, а насчёт второго никто подсказать не может? Напишите кто-нибудь, как сделать движение рыб сложным, чтоб они двигались не в 4 или стороны, а по сложным траекториям?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 1.12.2020 18:45
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name