Matrix Combination Logic

UWAGA: ** Proszę przeczytać wszystkie inne powiązane pytania: **

Oto moja pierwsza i druga próba zadania tego pytania:

Skuteczny sposób określenia wyniku macierzy testowejCzy produkt kartezjański byłby najlepszym podejściem do tego

Oto problem:

Mam kilka (np. 20) walidacji logicznych (prawda / fałsz)Wszystkie walidacje logiczne jako całość mają również wynik walidacji

Próbuję znaleźć najlepsze rozwiązanie do przetestowania wszystkich walidacji, a także wyniku walidacji. Szukałem w Matrixie, aby pomieścić wszystkie możliwe kombinacje, ale to może być przesada.

Oto przykład (1 - 20):

test_1 = Ma 30 zabójstwtest_2 = Znalazł mapę 1test_3 = opanował poziom 1test_4 = Osiągnął status Grunttest_5 = Ma broń szturmowątest_6 = Ma nóżtest_7 = Ma granattest_x = Etc ...

Więc kiedy gracz ma wszystkie te walidacje jako PRAWDA, mogę wtedy dać wynik poziomu

jeśli test_1, test_2, test_3 (dowolna kombinacja trzech): poziom = zielony

Wszystkie kombinacje to (15):

test_1test_2test_3test_1, test_2test_1, test_3test_2, test_1 (duplikat może to pominąć)test_2, test_3test_3, test_1 (duplikat może to pominąć)test_3, test_2 (duplikat może to pominąć)test_1, test_2, test_3test_1, test_3, test_2 (duplikat może to pominąć)test_2, test_1, test_3 (duplikat może to pominąć)test_2, test_3, test_1 (duplikat może to pominąć)test_3, test_1, test_2 (duplikat może to pominąć)test_3, test_2, test_1 (duplikat może to pominąć)

Tak więc unikalne są kombinacje (7 zamiast 15):

test_1test_2test_3test_1, test_2test_1, test_3test_2, test_3test_1, test_2, test_3

Teraz próbuję znaleźć najlepsze możliwe rozwiązanie, aby znaleźć unikalne kombinacje dla wszystkich 20 walidacji i wymyślić walidację poziomu z tej macierzy.

AKTUALIZACJA:

Muszę też znaleźć tylko PRAWDZIWE kombinacje, abyś mógł przeczytać unikalne kombinacje w następujący sposób:

test_1test_2test_3test_1, test_2test_1, test_3test_2, test_3test_1, test_2, test_3

Wyniki wartości logicznych z testów walidacyjnych

PRAWDA, FAŁSZ, FAŁSZFAŁSZ, PRAWDA, FAŁSZFAŁSZ, FAŁSZ, PRAWDAPRAWDA, PRAWDA, FAŁSZPRAWDA, FAŁSZ, PRAWDAFAŁSZ, PRAWDA, PRAWDATRUE, TRUE, TRUE

Zatem każda z tych kombinacji byłaby na ZIELONYM poziomie.

Muszę również znać kolejność walidacji testów, jak również kolejność macierzy, aby porównać ich przypisanie poziomu. Tak więc dla ZIELONEGO poziomu potrzebuję tylko macierzy kombinacji wyników walidacji dla testu 1, 2 i 3. Mogłem więc zignorować testy 4 - 20

AKTUALIZACJA # 2:

Wiem, że wygląda to na prosty warunek OR, ale chciałem usunąć logikę kombinacji, aby ustawić poziom w macierz. Mógłbym użyć macierzy kombinacji do określenia logiki poziomu bez konieczności dodatkowego kodowania lub modyfikowania bieżącej logiki w samym kodzie. Chciałem po prostu porównać wyniki walidacji dla danego zestawu testów i przypisać poziom do tych wyników. Różne permutacje kombinacji walidacyjnych skutkowałyby różnymi przypisaniami poziomów.

Rozumiem, że mógłbym dodać logikę kombinacji do samego kodu, ale ponieważ ta logika wygląda na bardzo niestabilną i myślałem, że może to zaoferować bardziej elastyczne rozwiązanie. Propozycje?

questionAnswers(4)

yourAnswerToTheQuestion