emacs-elpa-diffs
[Top][All Lists]
Advanced

[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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]