Зверніть увагу: я не хочу тут довідки з кодування, я знаходжуся з Programmers
причини. Я хочу вдосконалити свої навички планування / написання програми, а не (лише) розуміння Java .
Я намагаюся зрозуміти, як зробити дерево, яке має довільну систему категорій, виходячи з навичок, перелічених для цієї гри LARP тут . У моїй попередній спробі було зрозуміло, чи є вміння також категорією. Спроба зашифрувати це було безладно. Намалювавши своє дерево, я помітив, що лише мої «листя» - це навички, і я позначив інших категоріями.
Мені слідкувати - це спосіб створити дерево, яке намагається відокремити модель і перегляд, і додати довільний тип дочірнього вузла (з окремим способом редагування / надання) до довільного батьків.
NB Тут все купується як навик, навіть там, де це здається властивістю. Кінцеві користувачі сприйматимуть це як навички купівлі (що вони роблять на паперовому атмісі), тому вони повинні бути представлені як такі, все на одній сторінці.
Пояснення дерева: Дерево "народжується" з набором жорстко кодованих категорій найвищого рівня ( Зброя, Фізична та Психічна, Медична тощо). Від цього користувачеві потрібно мати можливість додати навичку. Зрештою, вони хочуть додати, наприклад, навичку "Спеціалізація мечів однією рукою" ( не предмет). Для цього слід в ідеалі натиснути «додати» із Weapons
вибраним, а потім вибрати One-handed
з вузла комбобоксу, який з’являється у цієї дитини, потім ще раз натиснути кнопку «Додати» та ввести ім’я у текстове поле цього дочірнього вузла, який з’явиться. Потім натисніть кнопку "Додати знову", щоб додати / вказати "рівень" або "рівень" для цього аркуша; спочатку знання, потім спеціалізація (наприклад).
Звичайно, якщо ви хочете придбати інший навик, це зовсім інший шлях до листочка. Можливо, вам не знадобиться комбінований ящик на тому ж рівні вниз по дереву, як ви робили з прикладом зброї, а також потрібна інша логіка. Це те, що я маю проблеми з головою, не кажучи вже про програмування; як скласти набір класів і не вказувати, в якому порядку їх з'єднати, але все-таки всі вони підходять.
Яка хороша система опису такого сорту дерева в коді? Усі інші приклади JTree, які я бачив, мають деяку передбачувану схему, а моя - ні . Мені не хочеться кодувати це все в "літералах", з довгими списками того, який тип (комбобокс, текстове поле тощо) дітей-вузла повинен бути дозволений на якому батьківському. Чи слід використовувати абстрактні заняття? Інтерфейси?
Як я можу зробити такий кластер об’єктів розширюваним, коли я додаю інші навички, не перелічені вище, які ведуть себе по-різному?
Якщо є НЕ гарна система для використання, є процес , добре працює, як зробити таку річ?
Шестірні в моїй голові обертаються:
Мені завжди потрібно:
- Перевірте батьківську
- Надайте варіанти на основі батьків
Я починаю думати, що через цю спільність мені потрібен якийсь абстрактний / інтерфейсний skill
клас, який визначає / окреслює загальні методи для майстерності та категорії. Я можу (сподіваюся) помістити правила та параметри в базу даних і читати звідти. Питання в тому, я думаю, зараз між абстрактним чи інтерфейсним методом і як це зробити.