Make chess puzzle level (Kasparov to F3) winnable.
[naja.git] / naja / utils.py
index b15302a1bb01effb9e2a991b843654ea91c8aee0..925442a7a12eef328f723b40f026070a37214f7d 100644 (file)
@@ -27,8 +27,31 @@ def move_glyph(move_name):
     }.get(move_name, move_name.lower())
 
 
+def parse_bits(bit_list):
+    # Convert names to numbers if applicable.
+    return frozenset(BITS.get(bit, bit) for bit in bit_list)
+
+
 def warp_to_game_state(game_state):
     from naja.events import LoadGameEvent, SceneChangeEvent
     from naja.scenes.game import GameScene
     LoadGameEvent.post(game_state)
     SceneChangeEvent.post(GameScene)
+
+
+class Flashlight(object):
+    def __init__(self, rate):
+        self.rate = rate
+        self.reset()
+
+    def tick(self):
+        self.ticks += 1
+        if self.ticks >= self.rate:
+            self.on = not self.on
+            self.ticks = 0
+            return True
+        return False
+
+    def reset(self):
+        self.ticks = 0
+        self.on = True