[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/pacmacs a802074eea 109/472: Add set/get functions for boar
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/pacmacs a802074eea 109/472: Add set/get functions for board (#74) |
Date: |
Thu, 6 Jan 2022 21:59:17 -0500 (EST) |
branch: elpa/pacmacs
commit a802074eea6106ce6d2da03d57c3c471efaf912a
Author: rexim <reximkut@gmail.com>
Commit: rexim <reximkut@gmail.com>
Add set/get functions for board (#74)
---
pacmacs-board.el | 21 ++++++++++++++++++++-
test/pacmacs-board-test.el | 30 ++++++++++++++++++++++++++----
2 files changed, 46 insertions(+), 5 deletions(-)
diff --git a/pacmacs-board.el b/pacmacs-board.el
index ad876c5a83..f60a56ce10 100644
--- a/pacmacs-board.el
+++ b/pacmacs-board.el
@@ -36,7 +36,26 @@
(let ((board (make-vector height nil)))
(dotimes (row height)
(aset board row (make-vector width nil)))
- board))
+ (list :width width
+ :height height
+ :data board)))
+
+(defun pacmacs--cell-get (board row column)
+ (plist-bind ((width :width)
+ (height :height)
+ (data :data))
+ board
+ (aref (aref data (mod row height))
+ (mod column width))))
+
+(defun pacmacs--cell-set (board row column value)
+ (plist-bind ((width :width)
+ (height :height)
+ (data :data))
+ board
+ (aset (aref data (mod row height))
+ (mod column width)
+ value)))
(provide 'pacmacs-board)
diff --git a/test/pacmacs-board-test.el b/test/pacmacs-board-test.el
index b390281829..ccbec9e757 100644
--- a/test/pacmacs-board-test.el
+++ b/test/pacmacs-board-test.el
@@ -1,9 +1,31 @@
(ert-deftest pacmacs--make-board-test ()
(let ((width 5)
(height 4)
- (expected-board [[nil nil nil nil nil]
- [nil nil nil nil nil]
- [nil nil nil nil nil]
- [nil nil nil nil nil]]))
+ (expected-board (list :width 5
+ :height 4
+ :data [[nil nil nil nil nil]
+ [nil nil nil nil nil]
+ [nil nil nil nil nil]
+ [nil nil nil nil nil]])))
(should (equal expected-board
(pacmacs--make-board width height)))))
+
+(ert-deftest pacmacs--cell-get-test ()
+ (let ((input-board (list :width 3
+ :height 2
+ :data [[nil nil nil]
+ [nil 42 nil]])))
+ (should (equal 42 (pacmacs--cell-get input-board 1 1)))))
+
+(ert-deftest pacmacs--cell-set-test ()
+ (let ((input-board (list :width 3
+ :height 2
+ :data [[nil nil nil]
+ [nil nil nil]]))
+ (expected-board (list :width 3
+ :height 2
+ :data [[nil nil nil]
+ [nil 42 nil]])))
+ (pacmacs--cell-set input-board 1 1 42)
+ (should (equal expected-board
+ input-board))))
- [nongnu] elpa/pacmacs 68f876d0ba 043/472: Merge pull request #29 from rexim/license-28, (continued)
- [nongnu] elpa/pacmacs 68f876d0ba 043/472: Merge pull request #29 from rexim/license-28, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 298b950310 062/472: Rename pacman-resources to pacman-image (#51), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs e9703e9ba2 061/472: Rename function for loading images (#51), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 0a65793037 071/472: Use plist-bind for pacman-anim-object-next-frame (#54), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 7f706e2159 074/472: Add UTs for plist-map (#54), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 69d47fbb9a 075/472: Merge branch 'pacman-utils-ut-54'. Close #54, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 7d16738069 077/472: Implement custom map format. Close #61, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 6d1831c746 081/472: Implement ghost mechanics. Close #62, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 427b4f823e 088/472: Add edebug specs for plist-bind macro (#68), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 1ed7f14e30 099/472: UTs for pacmacs--init-board-test (#75), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs a802074eea 109/472: Add set/get functions for board (#74),
ELPA Syncer <=
- [nongnu] elpa/pacmacs de66c1ce17 112/472: Refactor out pacmacs--step-point (#74), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs b0561eb59f 111/472: Refactor pacmacs--cell-tracked-p (#74), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 317f9b85b7 114/472: Refactor pacmacs--track-point (#74), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 5233bac0c5 105/472: UT for pacmacs--put-object-test (#75), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs d2c449734e 124/472: Merge branch 'pacman-death-69'. Close #69, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 1ed9c057cc 127/472: Add padding above the lives, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 9e7f67e368 126/472: Implement live mechanics. Close #86, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 86d701a167 131/472: Introduce pacmacs--load-next-level, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 3d49405193 136/472: Reset the score on start, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs a0e3b6fe73 138/472: Implement level is beaten state. Close #99, ELPA Syncer, 2022/01/06