Так что, в основном, название звучит намного причудливее, чем реальный вопрос.
Я пишу приложение, в котором я хотел бы внедрить систему достижений.Если все мои достижения созданы как экземпляры универсального класса, как мне написать метод для проверки этих достижений (т. Е. Определить, достиг ли пользователь целей или превысил их), когда тип достигнутого навыка может различаться, количество условийсоответствие может отличаться и тип проверки может отличаться?
Например:
Достижение - 10000 баллов!
Тип - общее количество баллов
Значение (X) - 10000
Условия - 1
Валидация - больше, чем X
против
Достижение - Ультра-фраг
Тип - убивает
Значение (Х) - 10
Тип - время
Значение (Y) - 10 секунд
Условия - 2
Валидация - как минимум X меньше, чем Y
Я пытаюсь избежать жесткого кодирования функции проверки для каждого достижения, посколькуони в основном являются общими, и единственное отличие состоит в том, как они проверяются.
Как класс достижений выглядит примерно так:
public class Achievement
{
boolean locked;
String name;
String desc;
public Achievement(string n, string d)
{
//ctor code
}
}
Я пытаюсь придумать способ сделать это без указателя на функциюи я с треском проваливаюсь.Кроме того, вы можете даже использовать указатели на функции в Java?Я плохо знаком с языком: (