[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/pacmacs 420dbec3e6 150/472: Register score on Game Over (#
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/pacmacs 420dbec3e6 150/472: Register score on Game Over (#92) |
Date: |
Thu, 6 Jan 2022 21:59:20 -0500 (EST) |
branch: elpa/pacmacs
commit 420dbec3e65e99115b1b3337f2137a0609b190b8
Author: rexim <reximkut@gmail.com>
Commit: rexim <reximkut@gmail.com>
Register score on Game Over (#92)
---
Cask | 1 +
pacmacs-score.el | 6 ++++
pacmacs.el | 83 +++++++++++++++++++++++++++++---------------------------
3 files changed, 50 insertions(+), 40 deletions(-)
diff --git a/Cask b/Cask
index 11068714e4..96dab180fa 100644
--- a/Cask
+++ b/Cask
@@ -6,6 +6,7 @@
(files "*.el")
(depends-on "dash")
+(depends-on "dash-functional")
(development
(depends-on "el-mock")
diff --git a/pacmacs-score.el b/pacmacs-score.el
index 202b1c568a..2195c76eba 100644
--- a/pacmacs-score.el
+++ b/pacmacs-score.el
@@ -33,6 +33,7 @@
;;; Code:
(require 'dash)
+(require 'dash-functional)
(defconst pacmacs--score-file-name "~/.pacmacs-score")
(defconst pacmacs--score-buffer-name "*Pacmacs Score*")
@@ -88,6 +89,11 @@
(-take 10)
(pacmacs--write-score-table)))
+(defun pacmacs--register-new-score (score)
+ (let ((nickname (read-from-minibuffer "Nickname: ")))
+ (pacmacs--add-entry-to-score-table nickname score)
+ (pacmacs-score)))
+
(provide 'pacmacs-score)
;;; pacmacs-score.el ends here
diff --git a/pacmacs.el b/pacmacs.el
index 91c321571f..672460c190 100644
--- a/pacmacs.el
+++ b/pacmacs.el
@@ -282,23 +282,21 @@
(defun pacmacs-tick ()
(interactive)
- (with-current-buffer pacmacs-buffer-name
- (let ((inhibit-read-only t))
- (cond
- ((equal pacmacs-game-state 'play)
- (pacmacs-play-state-logic))
- ((equal pacmacs-game-state 'death)
- (pacmacs-death-state-logic))
- ((equal pacmacs-game-state 'prepare)
- (pacmacs-waiting-logic #'pacmacs--switch-to-play-state))
- ((equal pacmacs-game-state 'level-beaten)
- (pacmacs-waiting-logic #'(lambda ()
- (pacmacs--load-next-level)
- (pacmacs--switch-to-prepare-state)))))
- (erase-buffer)
- (pacmacs-render-state))))
+ (cond
+ ((equal pacmacs-game-state 'play)
+ (pacmacs-play-state-logic))
+ ((equal pacmacs-game-state 'death)
+ (pacmacs-death-state-logic))
+ ((equal pacmacs-game-state 'prepare)
+ (pacmacs-waiting-logic #'pacmacs--switch-to-play-state))
+ ((equal pacmacs-game-state 'level-beaten)
+ (pacmacs-waiting-logic #'(lambda ()
+ (pacmacs--load-next-level)
+ (pacmacs--switch-to-prepare-state)))))
+
+ (pacmacs-render-state))
(defun pacmacs--step-ghosts ()
(dolist (ghost pacmacs-ghosts)
@@ -379,7 +377,8 @@
(defun pacmacs--switch-to-game-over-state ()
(setq pacmacs-game-state 'game-over)
- (pacmacs-load-map "game-over"))
+ (pacmacs-load-map "game-over")
+ (pacmacs--register-new-score pacmacs-score))
(defun pacmacs--switch-to-play-state ()
(setq pacmacs-game-state 'play)
@@ -397,35 +396,39 @@
(setq pacmacs-waiting-counter 1000))
(defun pacmacs-render-state ()
- (insert (format "Score: %d\n" pacmacs-score))
+ (with-current-buffer pacmacs-buffer-name
+ (let ((inhibit-read-only t))
+ (erase-buffer)
- (when pacmacs-debug-output
- (pacmacs--render-track-board pacmacs-track-board))
+ (insert (format "Score: %d\n" pacmacs-score))
- (pacmacs--fill-board pacmacs-board nil)
+ (when pacmacs-debug-output
+ (pacmacs--render-track-board pacmacs-track-board))
- (dolist (pill pacmacs-pills)
- (pacmacs--put-object pill))
+ (pacmacs--fill-board pacmacs-board nil)
- (dolist (ghost pacmacs-ghosts)
- (pacmacs--put-object ghost))
+ (dolist (pill pacmacs-pills)
+ (pacmacs--put-object pill))
- (pacmacs--put-object pacmacs-player-state)
-
- (dolist (wall pacmacs-wall-cells)
- (pacmacs--put-object wall))
-
- (plist-bind ((width :width)
- (height :height))
- pacmacs-board
- (dotimes (row height)
- (dotimes (column width)
- (let ((anim-object (pacmacs--cell-get pacmacs-board row column)))
- (pacmacs--render-object anim-object)))
- (insert "\n")))
- (insert "\n")
- (dotimes (i pacmacs-lives)
- (pacmacs--render-life-icon)))
+ (dolist (ghost pacmacs-ghosts)
+ (pacmacs--put-object ghost))
+
+ (pacmacs--put-object pacmacs-player-state)
+
+ (dolist (wall pacmacs-wall-cells)
+ (pacmacs--put-object wall))
+
+ (plist-bind ((width :width)
+ (height :height))
+ pacmacs-board
+ (dotimes (row height)
+ (dotimes (column width)
+ (let ((anim-object (pacmacs--cell-get pacmacs-board row column)))
+ (pacmacs--render-object anim-object)))
+ (insert "\n")))
+ (insert "\n")
+ (dotimes (i pacmacs-lives)
+ (pacmacs--render-life-icon)))))
(defun pacmacs-up ()
(interactive)
- [nongnu] elpa/pacmacs b0561eb59f 111/472: Refactor pacmacs--cell-tracked-p (#74), (continued)
- [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
- [nongnu] elpa/pacmacs 359a0facc5 140/472: Optimize empty cell rendering, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 420dbec3e6 150/472: Register score on Game Over (#92),
ELPA Syncer <=
- [nongnu] elpa/pacmacs 6f174d6239 156/472: Access resources in more general way (#95), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 330c69201f 160/472: Fix UTs, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 131a070556 163/472: Merge pull request #110 from syohex/fix-package, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs bb622648e3 162/472: Add Package-Requires header for dependencies, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 0c0aee723a 170/472: Fix regexp bug in pacmacs--levelname-from-filename, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs f28d928e89 177/472: Update README.md, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 8b44939a29 179/472: Merge pull request #121 from kRITZCREEK/master, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 368609060e 182/472: Add Win animation for Ghost. Close #90, ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 2c1881afdf 185/472: Compile the project on CI (#123), ELPA Syncer, 2022/01/06
- [nongnu] elpa/pacmacs 94c3a3cc1e 191/472: Merge branch 'master' into board-refactoring-105, ELPA Syncer, 2022/01/06