summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--GameView.py28
-rw-r--r--OptionalUtils.py6
2 files changed, 20 insertions, 14 deletions
diff --git a/GameView.py b/GameView.py
index 0303445..a670d7c 100644
--- a/GameView.py
+++ b/GameView.py
@@ -1,4 +1,5 @@
+from OptionalUtils import get
from typing import Optional
from Vec import Vec2
from Game import Game
@@ -13,7 +14,7 @@ import pygame
class GameView:
- def __init__(self, timeBased: bool = True):
+ def __init__(self, timeBased: bool = False):
self.timeBased = timeBased
self.game = Game([
@@ -155,24 +156,23 @@ class GameView:
if self.timeBased and (self._previousTick + self._tickTime <= time):
self._previousTick = time
match self.nextControlDirection:
- case None: return None
+ case None: None
case _:
- match self.game.snake:
- case None: return None
- case _:
- self.game.snake.heading = self.nextControlDirection
- self.nextControlDirection = None
+ get(self.game.snake).heading = self.nextControlDirection
+ self.nextControlDirection = None
+# match self.game.snake:
+# case None: return None
+# case _:
+# self.game.snake.heading = self.nextControlDirection
+# self.nextControlDirection = None
self.game.tick()
- else:
+ elif not self.timeBased:
match self.nextControlDirection:
- case None: return None
+ case None: None
case _:
self._previousTick = time
- match self.game.snake:
- case None: return None
- case _:
- self.game.snake.heading = self.nextControlDirection
- self.nextControlDirection = None
+ get(self.game.snake).heading = self.nextControlDirection
+ self.nextControlDirection = None
self.game.tick()
diff --git a/OptionalUtils.py b/OptionalUtils.py
index 51828bb..6541208 100644
--- a/OptionalUtils.py
+++ b/OptionalUtils.py
@@ -17,3 +17,9 @@ def foreach(opt: Optional[T], call: Callable[[T], None]) -> None:
return None
case _:
return call(opt)
+
+def get(opt: Optional[T]) -> T:
+ match opt:
+ case None: raise ValueError("get on None")
+ case _:
+ return opt