Magnus " suggestion est indéniablement la bonne réponse à votre question posée, mais en règle générale, vous souhaitez utiliser un dictionnaire pour les problèmes de ce type:
statemap = {(1, 0): (0, 1), (0, 1): (-1, 0), (-1, 0): (0, -1), (0, -1): (1, 0)}
dx, dy = statemap[dx, dy]
Même dans ce cas, je pourrais argumenter à l'aide d'un dictionnaire est mieux, car il est clair qu'il y a exactement quatre états, et qu'ils répètent, mais il est difficile de résister à la beauté de toutes les mathématiques.
Par ailleurs, le code dans votre question a un bug, et, en supposant que les valeurs de test pour sont les seules valeurs possibles, est équivalent à:
dx, dy = 1, 0
Le bug, c'est que vous avez besoin d' elif
pour la deuxième et les suivantes conditions, sinon, vous êtes en continuant de test dx
et dy
après leur modification. Si elles sont à l' 1
et 0
, alors tous à vos conditions seront les vrais , et ils finissent par la même à la fin! Si ils commencent comme 0
et 1
puis de la deuxième et de toutes les conditions soient vraies, et vous de nouveau à la fin avec l' 1, 0
. Et ainsi de suite...