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

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

[nongnu] elpa/pacmacs 96ad2016a1 001/472: Add initial code for pacman ga


From: ELPA Syncer
Subject: [nongnu] elpa/pacmacs 96ad2016a1 001/472: Add initial code for pacman game
Date: Thu, 6 Jan 2022 21:59:00 -0500 (EST)

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

    Add initial code for pacman game
---
 pacman.el | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)

diff --git a/pacman.el b/pacman.el
new file mode 100644
index 0000000000..f3b648c999
--- /dev/null
+++ b/pacman.el
@@ -0,0 +1,53 @@
+(defconst pacman-buffer-name "*Pacman*")
+
+(defvar pacman-timer nil)
+(defvar pacman-counter 0)
+
+(define-derived-mode pacman-mode special-mode "pacman-mode"
+  (define-key pacman-mode-map (kbd "<up>") 'pacman-up)
+  (define-key pacman-mode-map (kbd "<down>") 'pacman-down)
+  (define-key pacman-mode-map (kbd "<left>") 'pacman-left)
+  (define-key pacman-mode-map (kbd "<right>") 'pacman-right)
+  (define-key pacman-mode-map (kbd "q") 'pacman-quit)
+  (add-hook 'kill-buffer-hook 'pacman-destroy))
+
+(defun pacman-start ()
+  (interactive)
+  (switch-to-buffer-other-window pacman-buffer-name)
+  (pacman-mode)
+  (unless pacman-timer
+    (setq pacman-timer (run-at-time nil 0.1 'pacman-tick))))
+
+(defun pacman-destroy ()
+  (when pacman-timer
+    (cancel-timer pacman-timer)
+    (setq pacman-timer nil)))
+
+(defun pacman-quit ()
+  (interactive)
+  (when (get-buffer pacman-buffer-name)
+    (kill-buffer pacman-buffer-name)))
+
+(defun pacman-tick ()
+  (interactive)
+  (with-current-buffer pacman-buffer-name
+    (let ((inhibit-read-only t))
+      (erase-buffer)
+      (insert (format "%d" pacman-counter))
+      (setq pacman-counter (+ pacman-counter 1)))))
+
+(defun pacman-up ()
+  (interactive)
+  )
+
+(defun pacman-down ()
+  (interactive)
+  )
+
+(defun pacman-left ()
+  (interactive)
+  )
+
+(defun pacman-right ()
+  (interactive)
+  )



reply via email to

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