[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/pacmacs fa83e10d82 325/472: Get rid of dup code in track o
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/pacmacs fa83e10d82 325/472: Get rid of dup code in track object mech (#159) |
Date: |
Thu, 6 Jan 2022 21:59:36 -0500 (EST) |
branch: elpa/pacmacs
commit fa83e10d82ea880682bb6f9ea6c8cd52d25b779e
Author: rexim <reximkut@gmail.com>
Commit: rexim <reximkut@gmail.com>
Get rid of dup code in track object mech (#159)
---
pacmacs.el | 26 +++++++++++++-------------
test/pacmacs-test.el | 4 ++--
2 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/pacmacs.el b/pacmacs.el
index 82fe6eaee8..d93ee1a437 100644
--- a/pacmacs.el
+++ b/pacmacs.el
@@ -355,7 +355,7 @@
(append next-wave candidate-ways))))
(setq wave next-wave))))))
-(defun pacmacs--track-object-direction (game-object sort-comparator)
+(defun pacmacs--track-object-direction (game-object distance-comparator)
(plist-bind ((row :row)
(column :column))
game-object
@@ -370,25 +370,25 @@
candidate-column))
candidate-ways))
(next-tile (->> (-zip candidate-distances candidate-ways)
- (-sort sort-comparator)
+ (-sort (-lambda ((distance-1 . _) (distance-2 . _))
+ (funcall distance-comparator
+ distance-1 distance-2)))
(cdar))))
(when next-tile
(->> (pacmacs--vector- next-tile (cons row column))
(pacmacs--direction-name))))))
-(defun pacmacs--track-object (game-object)
+(defun pacmacs--track-object (game-object distance-comparator)
(-when-let (direction (pacmacs--track-object-direction
game-object
- (-lambda ((distance-1 . _) (distance-2 . _))
- (< distance-1 distance-2))))
+ distance-comparator))
(pacmacs--switch-direction game-object direction)))
-(defun pacmacs--back-track-object (game-object)
- (-when-let (direction (pacmacs--track-object-direction
- game-object
- (-lambda ((distance-1 . _) (distance-2 . _))
- (> distance-1 distance-2))))
- (pacmacs--switch-direction game-object direction)))
+(defun pacmacs--track-object-to-player (game-object)
+ (pacmacs--track-object game-object #'<))
+
+(defun pacmacs--track-object-from-player (game-object)
+ (pacmacs--track-object game-object #'>))
(defun pacmacs-tick ()
(interactive)
@@ -409,12 +409,12 @@
(defun pacmacs--step-ghosts ()
(dolist (ghost pacmacs--ghosts)
- (pacmacs--track-object ghost)
+ (pacmacs--track-object-to-player ghost)
(pacmacs--step-object ghost)))
(defun pacmacs--step-terrified-ghosts ()
(dolist (terrified-ghost pacmacs--terrified-ghosts)
- (pacmacs--back-track-object terrified-ghost)
+ (pacmacs--track-object-from-player terrified-ghost)
(pacmacs--step-object terrified-ghost)))
(defun pacmacs--create-game-object (row column list-name constructor)
diff --git a/test/pacmacs-test.el b/test/pacmacs-test.el
index a8d6e650e8..c0ce55d0ec 100644
--- a/test/pacmacs-test.el
+++ b/test/pacmacs-test.el
@@ -7,7 +7,7 @@
(should (not (pacmacs--cell-tracked-p 0 0)))
(should (pacmacs--cell-tracked-p 1 0))))
-(ert-deftest pacmacs--track-object-test ()
+(ert-deftest pacmacs--track-object-to-player-test ()
(let ((pacmacs--track-board (list :width 3
:height 2
:data [[2 1 2]
@@ -17,7 +17,7 @@
(with-mock
(mock (pacmacs--wall-at-p * *) => nil)
(mock (pacmacs--switch-direction (list :row 0 :column 0) 'right) :times 1)
- (pacmacs--track-object game-object))))
+ (pacmacs--track-object-to-player game-object))))
(ert-deftest pacmacs--put-object-test ()
(let ((pacmacs--object-board (list :width 2
- [nongnu] elpa/pacmacs 7d58295e93 281/472: Fix pacmacs--render-score-table function, (continued)
- [nongnu] elpa/pacmacs 7d58295e93 281/472: Fix pacmacs--render-score-table function, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs c501625be6 282/472: Add Blinking Terrified Ghost animation. Close #155, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs da727a84c1 287/472: Double dash play state logic function (#153), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs d49e28e468 293/472: Remove pacmacs--opposite-direction-name (#153), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs e12ed88fe7 298/472: Generalize run-away-direction function (#153), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs be52b6410f 294/472: UT for pacmacs--squared-distance (#153), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 0103a77462 302/472: Remove replace-filtered-game-objects (#153), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs ee76ee2dc0 299/472: UT for pacmacs--run-away-direction (#153), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs cec13dd618 308/472: Fix Emacs 24.3 build fail (#159), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs e662ec9be7 313/472: Disable Emacs 24.3 in the Travis build (#165), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs fa83e10d82 325/472: Get rid of dup code in track object mech (#159),
ELPA Syncer <=
- [nongnu] elpa/pacmacs 51117fc5db 336/472: Rename 5th big pill level accordingly (#162), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 0a33c04fc1 333/472: Add fourth big pill level (#162), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 402d176003 339/472: Remove unused functions (#171), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 71b977fd22 343/472: Transform it-recorder.el to an additional module, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs ad5cdc8efd 349/472: Add att.txt to gitignore, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 8d63cc3f30 358/472: Multicolor walls (#138), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs aed2853780 373/472: Move wall weight to the constants (#138), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 8166e4d3d7 363/472: Merge pull request #181 from codingteam/terrified-timer-reset-173, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 4679fcef60 381/472: Fix put-horizontal-bar UT (#138), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs b96be7f8d8 402/472: Fix text read only problem (#134), ELPA Syncer, 2022/01/06