Следующий код действительно работает так, как мне это нужно, но он уродливый, чрезмерный или ряд других вещей. Я просмотрел формулы и попытался написать несколько решений, но в итоге получилось такое же количество утверждений.
Есть ли тип математической формулы, который принес бы мне пользу в этом случае или допустимы утверждения 16 if?
Чтобы объяснить код, он для разновидности игры с одновременным пошатом. У двух игроков есть четыре кнопки действий каждый, а результаты исходят из массива (0-3), но переменные "один" и "два" 'может быть назначено что-либо, если это поможет. Результат: 0 = ни один выигрыш, 1 = p1 выигрывает, 2 = p2 выигрывает, 3 = оба выигрывают.
public int fightMath(int one, int two) {
if(one == 0 && two == 0) { result = 0; }
else if(one == 0 && two == 1) { result = 0; }
else if(one == 0 && two == 2) { result = 1; }
else if(one == 0 && two == 3) { result = 2; }
else if(one == 1 && two == 0) { result = 0; }
else if(one == 1 && two == 1) { result = 0; }
else if(one == 1 && two == 2) { result = 2; }
else if(one == 1 && two == 3) { result = 1; }
else if(one == 2 && two == 0) { result = 2; }
else if(one == 2 && two == 1) { result = 1; }
else if(one == 2 && two == 2) { result = 3; }
else if(one == 2 && two == 3) { result = 3; }
else if(one == 3 && two == 0) { result = 1; }
else if(one == 3 && two == 1) { result = 2; }
else if(one == 3 && two == 2) { result = 3; }
else if(one == 3 && two == 3) { result = 3; }
return result;
}