aboutsummaryrefslogtreecommitdiff
path: root/src/macroknight/utils.hy
diff options
context:
space:
mode:
Diffstat (limited to 'src/macroknight/utils.hy')
-rw-r--r--src/macroknight/utils.hy32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/macroknight/utils.hy b/src/macroknight/utils.hy
index a857d02..dde8d2e 100644
--- a/src/macroknight/utils.hy
+++ b/src/macroknight/utils.hy
@@ -1,3 +1,31 @@
+(import enum [Enum])
+
+(defclass Direction [Enum]
+ (setv UP "UP")
+ (setv DOWN "DOWN")
+ (setv LEFT "LEFT")
+ (setv RIGHT "RIGHT")
+
+ (defn [staticmethod] from-move [move]
+ #((.x-from-move Direction move)
+ (.y-from-move Direction move)))
+
+ (defn [staticmethod] x-from-move [move]
+ (if (>= (get move 0) 0)
+ Direction.RIGHT
+ Direction.LEFT))
+
+ (defn [staticmethod] y-from-move [move]
+ (if (>= (get move 0) 0)
+ Direction.DOWN
+ Direction.UP))
+
+ (defn [staticmethod] x-between-points [point1 point2]
+ (let [delta-x (abs (- (get point1 0) (get point2 0)))]
+ (if (>= delta-x 0)
+ Direction.RIGHT
+ Direction.LEFT))))
+
(defn neg [value]
(* -1 value))
@@ -12,3 +40,7 @@
#((+ (get end-move 0) (get move 0))
(+ (get end-move 1) (get move 1)))))
end-move))
+
+(defn sub-points [point1 point2]
+ #((- (get point2 0) (get point1 0))
+ (- (get point2 1) (get point2 1))))