changeset 410:09ff0abf3e0f

Filter keys at queueing time too
author Stefano Rivera <stefano@rivera.za.net>
date Sat, 17 Sep 2011 09:57:16 +0200
parents 7f6a28456fda
children 5b090546a3c8
files mamba/snake.py
diffstat 1 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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]