[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/pacmacs d637985f0b 095/472: Fix BFS wraparound bug. Close
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/pacmacs d637985f0b 095/472: Fix BFS wraparound bug. Close #73 |
Date: |
Thu, 6 Jan 2022 21:59:16 -0500 (EST) |
branch: elpa/pacmacs
commit d637985f0b1dd169e66ee7c1f9f530a1379589ec
Author: rexim <reximkut@gmail.com>
Commit: rexim <reximkut@gmail.com>
Fix BFS wraparound bug. Close #73
---
maps/map03.txt | 7 +++++++
maps/map04.txt | 3 +++
pacmacs.el | 34 +++++++++++++++++++++-------------
3 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/maps/map03.txt b/maps/map03.txt
new file mode 100644
index 0000000000..fc3e294953
--- /dev/null
+++ b/maps/map03.txt
@@ -0,0 +1,7 @@
+######
+# #
+# ## #
+# ## #
+# ## #
+# o #
+######
diff --git a/maps/map04.txt b/maps/map04.txt
new file mode 100644
index 0000000000..e748cabdc7
--- /dev/null
+++ b/maps/map04.txt
@@ -0,0 +1,3 @@
+#######
+ o
+#######
diff --git a/pacmacs.el b/pacmacs.el
index ad805c2575..8b5b8767ae 100644
--- a/pacmacs.el
+++ b/pacmacs.el
@@ -45,6 +45,8 @@
(defconst pacmacs-tick-duration-ms 100)
(defconst pacmacs-debug-output nil)
+(setq pacmacs-debug-output t)
+
(defvar pacmacs-timer nil)
(defvar pacmacs-board-width 10)
@@ -148,7 +150,8 @@
(kill-buffer buffer-or-name))))
(defun pacmacs--object-at-p (row column objects)
- (member (cons row column)
+ (member (cons (mod row pacmacs-board-height)
+ (mod column pacmacs-board-width))
(mapcar #'(lambda (object)
(plist-bind ((row :row)
(column :column))
@@ -168,7 +171,8 @@
(pacmacs--kill-buffer-and-its-window pacmacs-buffer-name)))
(defun pacmacs--cell-tracked-p (row column)
- (aref (aref pacmacs-track-board row) column))
+ (aref (aref pacmacs-track-board (mod row pacmacs-board-height))
+ (mod column pacmacs-board-width)))
(defun pacmacs--within-of-map-p (row column)
(and (<= 0 row (1- pacmacs-board-height))
@@ -221,22 +225,24 @@
(defun pacmacs--filter-candidates (p)
(let ((row (car p))
(column (cdr p)))
- (or (not (pacmacs--within-of-map-p row column))
- (pacmacs--wall-at-p row column)
+ (or (pacmacs--wall-at-p row column)
(pacmacs--cell-tracked-p row column))))
-(defun pacmacs--track-point (p q)
- (let* ((p-row (car p))
- (p-column (cdr p))
+(defun pacmacs--track-point (start end)
+ (let* ((start-row (car start))
+ (start-column (cdr start))
- (q-row (car q))
- (q-column (cdr q))
+ (end-row (car end))
+ (end-column (cdr end))
- (d-row (- q-row p-row))
- (d-column (- q-column p-column)))
- (aset (aref pacmacs-track-board p-row) p-column
+ (d-row (- end-row start-row))
+ (d-column (- end-column start-column)))
+ ;; (insert (format "(%d, %d)\n" d-row d-column))
+ (aset (aref pacmacs-track-board (mod start-row pacmacs-board-height))
+ (mod start-column pacmacs-board-width)
(cdr
- (assoc (cons d-column d-row)
+ (assoc (cons d-column
+ d-row)
pacmacs-inversed-direction-table)))))
(defun pacmacs--recalc-track-board ()
@@ -249,6 +255,8 @@
pacmacs-player-state
(let ((wave (list (cons player-row player-column))))
(while (not (null wave))
+ ;; (pacmacs-render-track-board)
+ ;; (insert "------------------------------\n")
(let ((next-wave nil))
(dolist (p wave)
(let* ((row (car p))
- [nongnu] elpa/pacmacs fbde339ff0 052/472: All the mystical cookies are merged into one! Close #15, (continued)
- [nongnu] elpa/pacmacs fbde339ff0 052/472: All the mystical cookies are merged into one! Close #15, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 1efc678194 053/472: Implement сonveyor rendering. Close #35, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 1414723d42 059/472: Implement wall mechanics. Close #36, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 420c485197 054/472: Implement pacman mechanics. Close #32, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs c20aa8089c 058/472: Implement plist-bind macro. Close #47, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 07e18ca1e6 067/472: Implement pills. Close #34, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs ef0cd69d99 072/472: Add copyright header to pacman-utils module, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 66f585899a 080/472: Fix pacman image UTs, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs f7b17f7cde 079/472: Set same background as foreground for color block. Close #59, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 28fc537f40 084/472: Multiple ghost support. Close #64, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs d637985f0b 095/472: Fix BFS wraparound bug. Close #73,
ELPA Syncer <=
- [nongnu] elpa/pacmacs 952801d94a 098/472: UT for pacmacs--fill-board-test (#75), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 428b994240 096/472: Remove debug output stuff, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 9614f394e7 106/472: Merge branch 'board-functions-uts-75'. Close #75, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 1e29c2f943 101/472: UTs for pacmacs--cell-tracked-p (#75), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 0839611f42 108/472: Refactor out pacmacs--make-board function (#74), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 8aa9d50dda 102/472: Remove pacmacs--within-of-map-p (#75), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 7714743aa8 103/472: UTs for pacmacs--track-point (#75), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 2c0bcf993f 107/472: Use two-argumented `<=`. Close #76, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs e5bd77740d 119/472: Fix NPEs (#74), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 286eb99ae0 130/472: Implement prepare phase. Close #80, ELPA Syncer, 2022/01/06