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

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

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

> Object pascal, Какую тему выбрать?
сообщение
Сообщение #1


Бывалый
***

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

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


Не подскажете какую тему выбрать для разработки объектно- ориентированной программы?
Нужно в общем создать какую-нибудь программу с перспективой перенесения её в Delphi.
Стандартные темы нам предложили не так уж что бы интересные: шашки, дурак, типа озера с щуками чё то.
Может кто подскажет что-нибудь поинтереснее. Нужно в общем, что бы наследование было, описать свойства и т.п
Я вообще то футболом увлекаюсь, но сомневаюсь, что здесь можно что- то придумать связанное с этим.....
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
3 страниц V  1 2 3 >  
 Ответить  Открыть новую тему 
Ответов(1 - 19)
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


blink.gif
да что угодно!
класс человек
у него наследники - футболист, судья, болельщик...
у каждого - еще наследники: футболист команды <название>, фанат команды <название>...
класс поле
класс мяч и т.п.

какие к этому алгоритмы приделать - надо думать... чтобы не получилось сложнее, чем в FIFA2008 какой-нить ;) а то сорвешь EA все продажи.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(мисс_граффити @ 8.10.2007 21:40) *
да что угодно!

Эт'точно! smile.gif
Можно замутить такую стратегию!! Например, можно покупать клубы, прибыль пускать на разные цели: в рекламу, в тренировку, в перекупку игроков, тренеров.. При этом игры не нужно визулизировать - просто случайным образом (с весами вложенных денег, набора игроков и т.п.) выдавать результат. Типа если нападение - супер, и защита - супер, а вратаря вообще забыли поставить - игра сливается с крупным счетом..
Цитата(мисс_граффити @ 8.10.2007 21:40) *

чтобы не получилось сложнее, чем в FIFA2008 какой-нить ;) а то сорвешь EA все продажи.

Да, есть реальная опасность.. Кстати, тогда 50% - Форуму! smile.gif.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Бывалый
***

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

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


Я конечно понимаю насчет продаж, но пока нет свободного времени с EA Sports конкурировать...
Не а реально что-нибудь простенькое для начала?
Потом может разовью smile.gif
Мы типа в Delphi переносить будем.
Наверное в графике делать. А че там рисовать? Типа футбольного менеджера что-ли?

Может подкинете начинающему программисту пару идей по реализации этой перспективной выдумки?
Как и с чего начать? Какие алгоритмы?

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


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Цитата(cooler @ 10.10.2007 21:18) *

Я конечно понимаю насчет продаж, но пока нет свободного времени с EA Sports конкурировать...

А я уже распланировала, на что свою долю потрачу sad.gif(((

По теме.
Можно что-то типа менеджера.
Самая примитивная схема:
Есть массив футболистов (11 шт) - твоя команда.
Есть массив "свободных" футболистов (штук 30, например). У каждого есть "коэффициент качества". Можно менять своего на любого из этого массива с определенной доплатой (если твой лучше - доплатят тебе). Когда ты сформируешь свою команду, случайным образом формируется команда - соперник (из свободных 30 выбирается 11). У кого выше средний коэфф качества - тот победил и получил призовые деньги.
В таком виде наша иерархия классов упрощается до 2 классов: игрок и команда.

Можем добавить судей. Тогда будет куда приделать наследование )))
У судьи есть 2 коэффициента симпатии - для каждой из команд. Более высокий повышает шансы команды... допустим, коэффициент качества будем умножать на этот коэффициент - и сравнивать уже такие модифицированные коэффициенты.

Итак, получаем:
1) Класс "человек". Поля: ФИО, дата рождения... еще какая-нибудь ерунда.
2) Наследники класса "человек":
-класс "футболист" (+коэффициент качества)
-класс "судья" (+2 коэффициента отношения)
3) Класс "футбольная команда": поля "игроки" (массив из 11 футболистов), название, деньги на счету (выигрыши+обмен игроков+что-то изначально дается), статистика побед/поражений....

Ну, это все очень примитивно. Можно футболистов поделить на вратарей, нападающих... кто там еще... (сорри, не сильна в футболе. тебе виднее). Добавить запасных для каждой команды. Дать возможность игрокам получать травмы. Добавить желтые и красные карточки......
----
Смутное ощущение, что после 13 часов написания своей программки надавала дурацких советов. Завтра перечитаю.... а может, сумеешь извлечь рациональное зерно.
Прошу прощения за пропущенные знаки препинания и опечатки.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Бывалый
***

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

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


Спасибо большое.

Согласен можно сделать так.
Только вот игроков надо бы разбить и коэффициенты у них разные должны быть.
Так например вратаря не поставил - коэф. вратаря - 0, следовательно шансов на победу не очень много.
Например
KG - коэф. вратаря (goalkeeper)
KD - защитника (defender)
KM - полузащитника (middle player)
KF - нападающего (forward)

И во время симуляции игры чтобы можно было паузу (например, в перерыве сделать) и игроков некоторых заменить => коэф. поменялись и игра в другом направлении пошла.

Только как всё это реализовать на pascal, большой вопрос.
Может подскажете как начать, какие процедуры для того, чтобы игроков менять в составе
(16= 11+5 запасных), как компьютер будет набирать игроков (ксати, это тоже обЪект?)
Или может сделать игроков тоже не в кучу, а на команды разбить и у этих команд покупать/продавать и
с ними играть, а не просто любых игроков набирать.


В общем вопросов много, опыта мало, надеюсь на вашу помощь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


можно и на команды разбить... я ж сказала, что привела примитивнейший вариант.
Давай разбираться с иерархией классов... пока самый минимум, потом будешь добавлять и усложнять.
Человек
Методов нет.
Поля: ФИО, дата рождения.

Судья (наследник Человека)
Методов нет.
Поля: отношение к команде1, отношение к команде2.

Футболист (наследник Человека)
Методы: расчет цены исходя из коэффициента.
Поля: коэффициент качества, тип (вратарь, защитник...).

Команда
Методы: рассчет коэффициента качества исходя из коэффициентов игроков.
Поля: название, сумма на счету, состав игроков (массивчики на каждый из типов, чтобы не путаться в них... чтобы не получилось 5 вратарей и ни одного нападающего).

Игра
Методы: определение победителя и счета (придумай алгоритмы.. как угодно можно).
Поля: команды, судья.

Игровая среда
Методы: обмен между командами, начало матча (создается объект класса "игра" и выводится информация о победителе).
Поля: массив (или список) команд, массив (список) судей.

Ну и к каждому классу конструктор/деструктор.

Попробуй реализовать первые классы (Человек, Судья, Футболист). Там проблем возникнуть не должно по идее.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Бывалый
***

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

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


Спасибо большое за помощь.

Вот ещё вопрос: будет(есть) ли здесь полиморфизм и агрегирование?

Посмотрите пожалуйста на мою диаграмму. Правильно ли я сопоставил типы?
Как связать остальные части диаграммы?
Я здесь написал age. Пусть будет возраст вместо даты рождения, он пригодится при расчете цены игрока.

Программу как начну делать выложу первые классы.


...А ещё наверное данные человека лучше в файл записей записывать?...

Сообщение отредактировано: cooler -


Прикрепленные файлы
Прикрепленный файл  ____________1.bmp ( 46.68 килобайт ) Кол-во скачиваний: 421
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Возраст придется изменять.

По твоей диаграмме, Футболист и Судья связаны наследованием... а на самом деле - они скорее "братья" - наследники Человека.

Записывать - ну, если хочешь сохранять игру, тогда в файл.

Что такое агрегирование?
Я знаю наследование, полиморфизм и инкапсуляцию...
А вот насчет полиморфизма - подумай сам. Что это такое - знаешь?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Цитата
Что такое агрегирование?

Агрегирование smile.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Бывалый
***

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

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


Блин, дату на возраст заменил, а тип нет. byte конечно
Полиморфизм знаю,
А как будут связаны другие объекты TTeam, TPLay, TPLayzone?

Так здесь агрегирование будет между командой и игроком?
Команда содержит Игрока т.е., команда НЕ является некоторым видом игрока, а содержит игрока внутри себя.


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


Гость






Цитата
А как будут связаны другие объекты TTeam, TPLay, TPLayzone?
Никак не будут... Здесь нет наследования, чтобы они были связаны. Здесь именно агрегирование.

Кстати, при первом взгляде на твою диаграмму возникает впечатление, что у тебя TFootballer - наследник TReferee. На самом деле - они "братья", у них всего навсего один предок.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Ух ты )))
Первый раз в жизни, когда отвечаем с volvo одинаково, я написала раньше...

Сорри за офф.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Бывалый
***

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

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


Полиморфизм -
Возможность определения единого по имени действия (процедуры или функции), применимого одновременно ко всем объектам иерархии наследования.

Так здесь у нас что получается нет полиморфизма?
У нас же нет одинаковых процедур для Судьи и футболиста например.

Здесь тоже нужны Конструкторы/ деструкторы? Объясните пожалуйста зачем, непонятно.

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


Гость






Цитата
Так здесь у нас что получается нет полиморфизма?
Где "тут"? Ты что, уже привел все методы, которые будут в классах, образующих дерево наследования? Полиморфизм и заключается в том, что действие определяется над предком, а потомок (если нужно) его переопределяет, причем при вызове ты можешь не знать, какой именно метод (предка или потомка) отработает... На то и полиморфизм...

Так что ответом на твой вопрос может быть: "сделаешь - будет, не сделаешь - не будет".

Цитата
Здесь тоже нужны Конструкторы/ деструкторы?
Желательны, особенно если у тебя есть наследование, полиморфизм -> виртуальные методы. Пока не вызван конструктор объекта, ты не имеешь права работать с его виртуальными методами.

То же самое касается и деструкторов - чтобы корректно освободить память потребуется виртуальный деструктор... Ты вот это внимательно читал:
ООП. Объектно-ориентированное программирование
?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


Бывалый
***

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

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


Конечно читал, если бы не читал, то не задавал бы вопросов.
Что не понял, то и спрашиваю
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Бывалый
***

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

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


Я просто не понимаю какие-методы брать. Ведь тех методов, которые мы обговорили, которые в диаграмме, их мало и нет одинаковых для разных объектов. Так что я пока не понимаю куда прилепить эти Конструкторы и Деструкторы.

Начинаю делать программу с конструкторами, так нет методов, берусь реализовывать те методы, которые есть так нет ещё основы для их реализации. А уж про графику вообще заикаться рано...
С чего начать, за что ухватиться?

Вот только описание к начальным обЪектам:

type TPeople=object
Sername,name:string;
age:byte;
end;
TFootballer=object(TPeople)
k:byte;
position:string;
procedure Raschet(price:real);
end;
TReferee=object(TPeople)
s1,s2:byte;
end;




Что делать???? nea.gif
мисс_граффити писала, чтобы я начал реализовывать первые классы. Так там одна простая процедура расчета цены игрока и больше ничего.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Цитата
Sername

По-моему, не так пишется. Если ты про фамилию...
Цитата
нет одинаковых для разных объектов.

ну... можешь попробовать придумать общие для футболиста и судьи методы...
пожалуй, если будет графика, таким методом может стать перемещение по полю (вынести в человека... а потом заместить)
правда, не поняла, зачем это так уж нужно.

а ты уже
procedure Raschet(price:real);
написал?
кстати, почему процедура, а не функция?...

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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Бывалый
***

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

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


фамилия - surname;
Я не собираюсь графически визуализировать матч.( во всяком случае пока)
Мне хотя бы сделать программу, выводящую результат матча.
Так как хотя бы просто сделать, связать с графикой (чтобы игроков можно было менять, матч запускать)
С полиморфизмом и виртуальными методами будем тогда потом усложнять, т.к пока вообще по сути ничего нет.
Как реализовать игровую среду? Куда и нужно ли сейчас создавать игроков, хотя бы нескольких (всмысле данные)

------------------
Прошу прощения, но мне кажется я сейчас такую ерунду написал.(только что проснулся)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Игроков нужно будет создавать, когда начнешь делать команды


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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