diff options
| author | Gene Pasquet <gene@pacerevenue.com> | 2026-02-26 21:11:54 +0000 |
|---|---|---|
| committer | Gene Pasquet <gene@pacerevenue.com> | 2026-02-26 21:11:54 +0000 |
| commit | 547a085fc4b55260b0000b8b5f9a0bd7791fb6d5 (patch) | |
| tree | 20494bea3239057c9fb3eeea265b2fd7cd1a1afc /src/macroknight/utils.hy | |
| parent | 1d28f3556a957b4099f12abd4d4645f17f1df3e8 (diff) | |
Improved input handling
Diffstat (limited to 'src/macroknight/utils.hy')
| -rw-r--r-- | src/macroknight/utils.hy | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/src/macroknight/utils.hy b/src/macroknight/utils.hy deleted file mode 100644 index 05412e8..0000000 --- a/src/macroknight/utils.hy +++ /dev/null @@ -1,66 +0,0 @@ -;;; Copyright (C) 2025 Gene Pasquet -;;; -;;; This program is free software: you can redistribute it and/or modify -;;; it under the terms of the GNU General Public License as published by -;;; the Free Software Foundation, either version 3 of the License, or -;;; (at your option) any later version. -;;; -;;; This program is distributed in the hope that it will be useful, -;;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with this program. If not, see <https://www.gnu.org/licenses/>. - -(import enum [Enum] - math [sqrt]) - -(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)) - -(defn invert [move] - #((neg (get move 0)) - (neg (get move 1)))) - -(defn merge-moves [moves] - (let [end-move #(0 0)] - (for [move moves] - (setv end-move - #((+ (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)))) - -(defn distance [point1 point2] - (sqrt (+ (** (- (get point1 0) (get point2 0)) 2) - (** (- (get point1 1) (get point2 1)) 2)))) |
