;ELC ;;; compiled by cthomp@willow on Thu Aug 12 00:33:13 1993 ;;; from file /era/era-0.80/editor/lisp/games/hanoi.el ;;; emacs version 19.8 (beta8) Lucid. ;;; bytecomp version 2.15; 14-jul-93. ;;; 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"))) (error "This file was compiled for Emacs 19.")) (fset 'hanoi-topos #[(row col) " !y u" [goto-line row 0 col] 2]) (fset 'hanoi #[(nrings) "X! ! !  ˥\" \\TY V !Y ˥\" V#ZVZ* ZZ B _ B _ B\"W\\\\\\\"\\\\\"#ITV)!\"p!  WT S\"ci) S\"((W( _\"(\\( WT!c!!d)G)/WZZH/ ZIA@ZZ\"/#ASTE*\"!S$eb!\" !!.\n" [nrings 0 error "Negative number of rings" nil floor-row fly-row window-height selected-window window-width logand 6 -2 pole-spacing 4 w h delete-other-windows "Screen is too small (need at least %dx%d)" 3 1 5 make-vector rings pole-3 pole-2 pole-1 i vector make-string 48 32 switch-to-buffer "*Hanoi*" buffer-read-only buffer-disable-undo erase-buffer insert-char 10 61 n hanoi-topos 2 next-line 124 delete-char backward-char ring hanoi-draw-ring t sit-for hanoi0 message "Done" set-buffer-modified-p buffer-modified-p] 10 "\ Towers of Hanoi diversion. Argument is number of rings." (byte-code "!C" [current-prefix-arg 3 prefix-numeric-value] 2)]) (byte-code "MMM!" [hanoi0 #[(n from to work) " C\" W S $  # S $" [input-pending-p signal quit "I can tell you've had enough" n 0 hanoi0 from work to hanoi-move-ring] 5] hanoi-move-ring #[(n from to) " HH@ ZZ@ ZZA \n    \" V #! #! S _AT\n \n V!yՉ! TT W\n WPy!Չ! SS 5\n\"  W  V#! #! T [  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] hanoi-draw-ring #[(ring f1 f2) " H HG ! c \\å!!c+" [f1 ring 1 2 string len delete-char f2 backward-char 124] 4] provide hanoi] 2)