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

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

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

 
 Ответить  Открыть новую тему 
> объектно-ориентированное программирование, графика.
сообщение
Сообщение #1





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

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


Создать библиотеку объектных типов, которая должна содержать, как минимум, описания одного родительского типа и двух дочерних. Прообразом создаваемых объектов должен послужить движущийся графический объект. Объекты должны отличаться методами движения: один должен уметь двигаться по экрану случайным образом, другой – под управлением соответствующих клавиш в восьми возможных направлениях (вертикальных, горизонтальных, диагональных). Разработать программу – объектно-ориентированное приложение, в котором должно быть организовано движение по экрану, как минимум, двух экземпляров динамических объектов:
Первого – случайным образом, второго – под управлением соответствующих клавиш.


Может у кого есть такой пример или подобный? Очень надо. Помогите плиз!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Вот тебе набросок... Управление (по диагонали доделаешь сам, по аналогии) - с цифровой клавиатуры в режиме NumLock, клавиши 2, 4, 6, 8...

Красный объект - управляемый, белые - случайно перемещающиеся. Пока программа рассчитана на любое количество случайных объектов, и один управляемый. gach, вопрос на засыпку: почему, и можно ли этого избежать?

excl.gif
"Ну-с... Пора внести разнообразие в отдых..." (С) Особенности национальной рыбалки.

Первый, кто предложит работающее решение (естественно, в стиле ООП), при котором будет возможно в приведеную мной программу добавить больше одного управляемого объекта, получает +1 в рейтинг... smile.gif


Прикрепленные файлы
Прикрепленный файл  GR_OBJ.PAS ( 2.99 килобайт ) Кол-во скачиваний: 113
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


Цитата(volvo @ 9.05.2006 19:28)
Вот тебе набросок...


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





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

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


Оооо. ТО что надо!!!! Спасибо огромное! Теперь буду разбираться!!!! вот это спец!!!! Мой глубокий поклон!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





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

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


Вот вопросик возник.
procedure TObj.recalc;
begin
Inc(X, DX); Inc(Y, DY);
end;

Что эта процедура делает? Что такое Inc(X, DX); Inc(Y, DY);?

И еще вопрос.
procedure TObj.show(is_active: boolean);
const R = 5;
begin
if is_active then setcolor(get_color)
else setcolor(TObj.get_color);

circle(X, Y, R);
end;

Что такое is_active и почему оно boolean?

И еще вопрос.
constructor TRandomObj.Init;
begin
Inherited Init;
Tick := 0;
end;


Что такое Tick? почему он нулю равен??

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Значит, так... Первый вопрос:
насчет "что делает" - это попытайся разобраться сам. Что такое
Inc(X, DX); Inc(Y, DY);
- это то же самое, что
X := X + DX; Y := Y + DY;


Второе. Посмотри на вызов процедуры Show, и тебе все станет понятно. Show(False) скрывает объект, Show(True) показывает его... Почему Boolean? А мне не нужно больше 2-х состояний, объект может быть только видим/невидим... Третьего не дано. А у какого еще встроенного типа есть только 2 состояния?

Третье. Constructor тебе ничего не говорит? Зачем вообще конструкторы используются, в курсе?
Насчет "что такое Tick" - а ты найди место, где с этой переменной что-то делается, и посмотри ЧТО именно, тогда все поймешь...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





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

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


Значит я правильно понял что процедура procedure TObj.recalc изменяет начальные координаты? ТО есть отвечает за движение? Или я что-то напутал?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 




- Текстовая версия 22.08.2017 12:26
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"