0 / 0 / 0
Регистрация: 10.01.2019
Сообщений: 28
|
|
1 | |
Создание объекта класса, который будет содержать указанное количество объектов другого класса26.04.2019, 13:10. Показов 4447. Ответов 8
Метки нет (Все метки)
Здравствуйте. Я сейчас только учусь, помогите, пожалуйста.
Задача такая: необходимо создать класс кораблика из игры "Морской бой", при этом он должен содержать количество палуб, иметь возможность доступа к каждой палубе по адресу, типа "А3", помечать палубы, как взорванные и в целом корабль, как уничтоженный. Я подумал о варианте, когда есть класс "корабль" и есть класс "палуба", создать композицию, при создании корабля, палуба создается автоматически и без корабля существовать не может. Но тут появляется вопрос: если корабль не однопалубный, то как сделать так, чтобы при введении пользователем количества палуб, в классе "корабль" создавалось именно такое количество палуб? Имеет ли место быть мой вариант? Если да, то каким образом осуществить идею? Если есть более простые варианты, то какие? Заранее благодарю.
0
|
26.04.2019, 13:10 | |
Ответы с готовыми решениями:
8
Возможно ли создать объект своего класса, который состоит из объектов другого класса? Создание объекта класса с полем являющимся объектом другого класса Вызвать процедуру\функцию из другого объекта\класса. Из одного класса\объекта сделать два Перегрузка операции + с преобразованием объектов одного класса в объекты другого класса |
1471 / 928 / 452
Регистрация: 06.02.2012
Сообщений: 2,846
|
|
26.04.2019, 13:25 | 2 |
Может это вам поможет
Sea-Battle-Game
1
|
0 / 0 / 0
Регистрация: 10.01.2019
Сообщений: 28
|
|
26.04.2019, 13:36 [ТС] | 3 |
Спасибо большое за попытку, но не помогло((
Я же только учусь, тема для меня не легкая. Открыл, посмотрел, там очень много всего, много чужого кода. Что-то учел для себя, но понял очень мало. Все равно спасибо, думаю, когда получше с понимаем станет, вернусь к этому архиву.
0
|
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
|
|
26.04.2019, 13:44 | 4 |
Fardar, это вам надо создать "Морской бой", и вы сами придумали эту структуру классов? Или же это именно задание?
0
|
0 / 0 / 0
Регистрация: 10.01.2019
Сообщений: 28
|
|
26.04.2019, 13:53 [ТС] | 5 |
Структуру придумал сам. Я пока не совсем понимаю тему ООП, предположил, что такая структура может работать, но не уверен в этом. Не факт, что язык может вообще поддерживать подобный синтаксис.
0
|
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
|
|
26.04.2019, 13:59 | 6 |
Fardar, такое, конечно, можно реализовать, но зачем усложнять?
0
|
0 / 0 / 0
Регистрация: 10.01.2019
Сообщений: 28
|
|
26.04.2019, 14:08 [ТС] | 7 |
Я был бы очень рад не усложнять, но я не знаю как. Только учусь, поэтому плохо соображаю что и как. В первом сообщении написал, что если есть вариант проще, то прошу рассказать.
0
|
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
|
||||||
26.04.2019, 15:33 | 8 | |||||
Сообщение было отмечено Fardar как решение
Решение
Fardar, вот код по вашей структуре классов, возьмите его за основу:
Fardar, вам нужно сделать метод проверки возможности вставить корабль в указанное место, а далее уже можно будет реализовывать логику игры.
1
|
Модератор
|
|
26.04.2019, 16:24 | 9 |
Если учитесь ООП, то это не сложная структура.
Саму задачу можно, конечно, реализовать и проще - без ООП. Но тогда, соответственно, и опыта не получите. В Ваших вариантах по реализации задачи пропущен ещё один класс, который является основным и без которого реализация задачи станет не возможным. И ещё один дополнительный класс Основной класс Sea (Море) которое и должно содержать корабли состоящие из палуб. Этот класс (как вариант) должен содержать: конструктор с параметрами длина (или высота) и ширина матрицу ячеек (клеток) Cells из объектов Cell метод Bang (выстрел) проверяющий попадание метод CreateShip, создающий корабль. список кораблей список палуб Тип Cell должен иметь: содержание палуба или null свойства сообщающее о занятости одной из соседних клеток. В типе Палуба должно быть событие, через которое она может известить подписчиков о попадании в неё. При создании корабля класс Sea передаёт в конструктор набор уже созданных палуб. И класс корабля подписывается на событие всех палуб и хранит их список. Добавлено через 3 минуты Собственные координаты палубе знать необязательно. По смыслу это функция типа Cell. Если Cell получает выстрел (Bang), то он сообщает содержанию (контенту), что в него попали. А контент (в данном случае палуба) сообщает своим подписчикам, что он разрушен (потоплен).
2
|
26.04.2019, 16:24 | |
26.04.2019, 16:24 | |
Помогаю со студенческими работами здесь
9
XmlJava. Сериализация класса с полем - массивом объектов другого класса Массив объектов одного класса как поле другого класса Использование объектов одного класса в функциях другого класса Коллекция объектов одного класса в экземпляре другого класса Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |