;ELC ;;; compiled by roland@charlie-brown.gnu.ai.mit.edu on Sat Feb 17 16:24:55 1996 ;;; from file /gd/gnu/emacs/19.0/lisp/hanoi.el ;;; emacs version 19.30.91.3. ;;; bytecomp version FSF 2.10 ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`hanoi.el' was compiled for Emacs 19.29 or later")) (defalias 'hanoi-topos #[(row col) " !y u" [goto-line row 0 col] 2]) #@58 Towers of Hanoi diversion. Argument is number of rings. (defalias 'hanoi #[(nrings) "X !S !ɥ\nTV-\nVU !STVJɥ\nVUT_\\#ZTVfZhZZ\nS\fB\n_S\fB\n_S\fB\"W\\\\ڦ\\\"\\\\\"#IT)!p! \fWTS\"c)S\"$$W2 $\n_S\"$\\$ \fW.T!c!!))*WwZZH*\fZIA@ZZ\"*#AST:*!É./S$*eb! !.\n" [nrings 1 7 nil floor-row fly-row window-height selected-window window-width 6 pole-spacing delete-other-windows error "Window is too small (need at least %dx%d)" 2 3 5 make-vector rings pole-3 pole-2 pole-1 0 i vector make-string 10 48 32 switch-to-buffer "*Hanoi*" buffer-read-only buffer-disable-undo erase-buffer insert-char 61 n hanoi-topos next-line 124 delete-char backward-char ring hanoi-draw-ring t sit-for column-number-mode line-number-mode hanoi0 message "Done" force-mode-line-update] 9 (#$ . 555) "p"]) (defalias 'hanoi0 #[(n from to work) " C\"\fW.\fS $\f #\fS $" [input-pending-p signal quit "I can tell you've had enough" n 0 hanoi0 from work to hanoi-move-ring] 5]) (defalias 'hanoi-move-ring #[(n from to) " HH@ ZZ@ ZZA \n \f\f \"\fVN\f#!\f#!\fS\f+AT\n \n V!yՉ! TT U\n WUy!Չ! SS U\n\"\f W\f\fV#!\f#!\fT\f\f IAS." [rings n nil buffer-read-only ring 0 from 1 to dst-row dst-col col row hanoi-topos fly-row hanoi-draw-ring t previous-line sit-for delete-backward-char 2 32 delete-char next-line] 6]) (defalias 'hanoi-draw-ring #[(ring f1 f2) " H HG !\fc, \\å!!c+" [f1 ring 1 2 string len delete-char f2 backward-char 124] 4]) (provide (quote hanoi))