# HG changeset patch # User Stefano Rivera # Date 1316246236 -7200 # Node ID 09ff0abf3e0f8f22d7b7ce00342913ba0eb92f6a # Parent 7f6a28456fda7cfd3bd9f55a952951f254627bf1 Filter keys at queueing time too diff -r 7f6a28456fda -r 09ff0abf3e0f mamba/snake.py --- a/mamba/snake.py Sat Sep 17 14:36:31 2011 +0200 +++ b/mamba/snake.py Sat Sep 17 09:57:16 2011 +0200 @@ -99,6 +99,15 @@ world.interact(segment) def send_new_direction(self, orientation): + # Filter illegal & noop orientation changes + if self._orientation_changes: + tip = self._orientation_changes[-1] + else: + tip = self.head.orientation + if ((0 == orientation[0] == tip[0]) + or (0 == orientation[1] == tip[1])): + return + self._orientation_changes.append(orientation) # Cap queue length: self._orientation_changes = self._orientation_changes[:3]