Предложение Магнуса, несомненно, является правильным ответом на поставленный вопрос, но в общем, вы хотите использовать словарь для таких проблем:
statemap = {(1, 0): (0, 1), (0, 1): (-1, 0), (-1, 0): (0, -1), (0, -1): (1, 0)}
dx, dy = statemap[dx, dy]
Даже в этомесли бы я мог утверждать, что лучше использовать словарь, так как ясно, что существует ровно четыре состояния и они повторяются, но трудно устоять перед чистой красотой всех математических выражений.1010 * Кстати, код в вашем вопросе содержит ошибку, и, если предположить, что значения, которые вы проверяете, являются единственно возможными значениями, эквивалентен:
dx, dy = 1, 0
Ошибкав том, что вам нужно elif
для второго и последующих условий, в противном случае вы продолжаете тестировать dx
и dy
после их изменения.Если они 1
и 0
, то все ваши условия будут верны , и в конце они окажутся одинаковыми!Если они начинаются как 0
и 1
, то второе и все последующие условия будут выполнены, и вы снова получите 1, 0
.И так далее ...