Матричная комбинационная логика

ПРИМЕЧАНИЕ: ** Пожалуйста, прочитайте все другие связанные вопросы: **

Вот моя первая и вторая попытки задать этот вопрос:

Эффективный способ определения результата тестовой матрицыБудет ли декартово произведение лучшим подходом для этого?

Вот проблема:

У меня есть несколько (например, 20) булевых проверок (true / false)Все логические валидации в целом также имеют валидацию ResultI '

Я пытаюсь найти лучшее решение для проверки всех проверок, а также результатов проверки. Я искал Матрицу для хранения всех возможных комбинаций, но это может быть излишним.

Вот пример (1 - 20):

test_1 = имеет 30 убийствtest_2 = нашел карту 1test_3 = освоил уровень 1test_4 = получил статус Grunttest_5 = имеет штурмовое оружиеtest_6 = есть ножtest_7 = Есть гранатаtest_x = Etc ...

Поэтому, когда у игрока есть все эти проверки как ИСТИНА, я могу дать результат уровня

если test_1, test_2, test_3 (любая комбинация из трех): уровень = зеленый

Все комбинации (15):

test_1test_2test_3test_1, test_2test_1, test_3test_2, test_1 (дубликат может пропустить это)test_2, test_3test_3, test_1 (дубликат может пропустить это)test_3, test_2 (дубликат может пропустить это)test_1, test_2, test_3test_1, test_3, test_2 (дубликат может пропустить это)test_2, test_1, test_3 (дубликат может пропустить это)test_2, test_3, test_1 (дубликат может пропустить это)test_3, test_1, test_2 (дубликат может пропустить это)test_3, test_2, test_1 (дубликат может пропустить это)

Таким образом, уникальные комбинации (7 вместо 15):

test_1test_2test_3test_1, test_2test_1, test_3test_2, test_3test_1, test_2, test_3

Сейчас я'Я пытаюсь найти наилучшее из возможных решений, чтобы найти уникальные комбинации для всех 20 проверок и придумать проверку уровней из этой матрицы.

ОБНОВИТЬ:

Также мне нужно найти только ИСТИННЫЕ комбинации, чтобы вы могли прочитать уникальные комбинации, как это:

test_1test_2test_3test_1, test_2test_1, test_3test_2, test_3test_1, test_2, test_3

Логическое значение, полученное в результате проверочных тестов

ИСТИНА, ЛОЖЬ, ЛОЖЬЛОЖЬ, ИСТИНА, ЛОЖЬЛОЖЬ, ЛОЖЬ, ИСТИНАИСТИНА, ИСТИНА, ЛОЖЬИСТИНА, ЛОЖЬ, ИСТИНАЛОЖЬ, ИСТИНА, ИСТИНАИСТИНА, ИСТИНА, ИСТИНА

Так что любая из этих комбинаций будет ЗЕЛЕНЫМ уровнем.

Также мне нужно знать порядок проверки тестов, а также порядок матрицы для сравнения при назначении уровня. Поэтому для ЗЕЛЕНОГО уровня мне нужна только матрица комбинаций результатов проверки для тестов 1, 2 и 3. Поэтому я могу игнорировать тесты 4 - 20

ОБНОВЛЕНИЕ № 2:

Я знаю, что это выглядит как простое условие ИЛИ, но я хотел взять комбинационную логику, чтобы установить уровень в матрицу. Я мог бы использовать матрицу комбинаций для определения логики уровня без необходимости кодировать дополнительную или модифицировать текущую логику в самом коде. Я хотел просто сравнить результаты валидации для данного набора тестов и назначить уровень этим результатам. Различные сочетания проверочных комбинаций могут привести к различным уровням назначения.

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

Ответы на вопрос(4)

Ваш ответ на вопрос