Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Игра Жизнь. Модель 
:(
    Опции темы
Kannby
Дата 8.4.2012, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.4.2012

Репутация: нет
Всего: нет



Уверен, что вы слышали про игру "Жизнь" Конвея. 
В гугле нашёл только два варианта построения приложения: 
1. класс для модели, класс для панели(JPanel) и фрейм(JFrame) 
2. создаются классы для клетки, фишки, поля, окна, ивентов... 

Подскажите, пожалуйста, как бы вы построили это приложение? Какие бы классы использовали. 
Заставила задуматься эта статья:http://habrahabr.ru/post/140581/ (в самом конце). 
Цитата

Признак того, что объект не должен быть классом — если в нём всего 2 метода, и один из них — инициализация, __init__. Каждый раз видя это, подумайте: «наверное, мне нужна просто одна функция».

Заранее спасибо!
PM MAIL   Вверх
GZep
Дата 8.4.2012, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



Не совсем понял вопрос. Имеется ввиду View "игровое поле"?


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Kannby
Дата 8.4.2012, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.4.2012

Репутация: нет
Всего: нет



Не совсем понял, что вы не поняли.
PM MAIL   Вверх
GZep
Дата 8.4.2012, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



В таком случае, может перефразируете искомый вопрос.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Kannby
Дата 8.4.2012, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 5.4.2012

Репутация: нет
Всего: нет



Я написал эту игру в трёх файлах:
Model.java - здесь находится алгоритмы смены поколений, нахождения количества соседей и тп.
Panel.java - класс extends JPanel. Здесь прорисовывается сама сетка, и клетки.
Main.java - здесь слушаются события(если например пользователь поставил клетку, или удалил, или очистил поле,...)

Потом я подумал, что это не совсем по принципам ООП. И лучше было бы создать много классов пример приведен здесь http://www.bitstorm.org/gameoflife/code/

Каким способом корректнее(с точки зрения ООП) построить приложение?
PM MAIL   Вверх
GZep
Дата 13.4.2012, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



Kannby, а здесь точка зрения ООП подразумевает различные варианты архитектуры. Если в лоб, то да, нужен класс Cell.java, но создание класса для каждого объекта слишком дорого и не рационально.
Для примера такой вопрос: нужен-ли отдельный класс для ячейки? Все зависит от того, нужны-ли отдельные методы, логика для этого класса? Быть может уровни абстракции, наследники? Если всего этого не нужно то и создавать "пустышку" смысла нет. Вполне подойдет один класс Panel.java (который у Вас, видимо, View) и все.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Stolzen
Дата 14.4.2012, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 23
Всего: 48



Цитата(Kannby @  8.4.2012,  20:06 Найти цитируемый пост)
Заставила задуматься эта статья:http://habrahabr.ru/post/140581/ (в самом конце). 
Цитата

Признак того, что объект не должен быть классом — если в нём всего 2 метода, и один из них — инициализация, __init__. Каждый раз видя это, подумайте: «наверное, мне нужна просто одна функция».

Заранее спасибо! 

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

Это сообщение отредактировал(а) Stolzen - 14.4.2012, 14:24


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0843 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.