Рассмотрим этот двумерный массив:
A B C D E
A 1 0 0 0 0
B 0 1 1 0 0
C 0 1 1 0 0
D 0 0 0 1 1
E 0 0 1 1 1
Это означает, что A может быть отображено с помощью A, но sureshot не может быть отображено с помощью B, C, D или E.
Точно так же B может быть сопоставлен с B и C, но не с A, D и E.
Здесь может означать, что он может быть сопоставлен или не быть.
Теперь я должен написать код на С ++, чтобы убедиться, что это отображение выполнено, и утверждать, что оно не выполняется.
Я написал код if if об этом, подобный этому (скелет). Я проверяю условия, при которых B не должен точно совпадать с выстрелом.
if (checking_for_B) {
if (B is mapped with A || B is mapped with D || B is mapped with E) {
assert();
}
}
Точно так же я должен был бы написать условие if для A, B, C, D и E. Я не доволен этим подходом. Если бы вы были мной, что бы вы, люди, писали.
Заранее спасибо.