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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/pacmacs 16b0d6583a 153/472: Get rid of the hardcoded level


From: ELPA Syncer
Subject: [nongnu] elpa/pacmacs 16b0d6583a 153/472: Get rid of the hardcoded level list. Close #109
Date: Thu, 6 Jan 2022 21:59:20 -0500 (EST)

branch: elpa/pacmacs
commit 16b0d6583a1d56de6f92d1b6138ba6ec7d0696ce
Author: rexim <reximkut@gmail.com>
Commit: rexim <reximkut@gmail.com>

    Get rid of the hardcoded level list. Close #109
---
 pacmacs-utils.el |  4 ++++
 pacmacs.el       | 13 ++++++++++---
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/pacmacs-utils.el b/pacmacs-utils.el
index 798e7b4d31..ad5b31aa2a 100644
--- a/pacmacs-utils.el
+++ b/pacmacs-utils.el
@@ -70,6 +70,10 @@ side-effects."
     (insert-file-contents filename)
     (buffer-string)))
 
+(defun pacmacs--levelname-from-filename (filename)
+  (string-match "\\(map[0-9]+\\)\\.txt" filename)
+  (match-string 1 filename))
+
 (provide 'pacmacs-utils)
 
 ;;; pacmacs.el ends here
diff --git a/pacmacs.el b/pacmacs.el
index 07c0546e80..114e2fa2bc 100644
--- a/pacmacs.el
+++ b/pacmacs.el
@@ -68,9 +68,7 @@
 
 (defvar pacmacs-lives 3)
 
-
-(defvar pacmacs-levels ["map01" "map02" "map03"
-                        "map04" "map05" "map06"])
+(defvar pacmacs-levels nil)
 (defvar pacmacs-current-level 0)
 
 (defvar pacmacs-waiting-counter 0)
@@ -92,7 +90,9 @@
 
   (setq pacmacs-lives 3)
   (setq pacmacs-score 0)
+  (setq pacmacs-levels (pacmacs--get-list-of-levels))
   (setq pacmacs-current-level 0)
+  
   (pacmacs--load-current-level)
   (pacmacs--switch-to-play-state)
 
@@ -455,6 +455,13 @@
   (when (equal pacmacs-game-state 'play)
     (pacmacs--switch-direction pacmacs-player-state 'right)))
 
+(defun pacmacs--get-list-of-levels ()
+  (->> (directory-files "./maps/")
+       (-map #'pacmacs--levelname-from-filename)
+       (-remove #'null)
+       (-sort #'string-lessp)
+       (apply #'vector)))
+
 (defun pacmacs-load-map (map-name)
   (let* ((lines (split-string (pacmacs--file-content (format "maps/%s.txt" 
map-name)) "\n" t))
          (board-width (apply 'max (mapcar #'length lines)))



reply via email to

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