Meadowで使えるゲーム

目次

  1. Emacs附属のゲーム
  2. gnyognyo
  3. Mine Sweeper
  4. snake
  5. getris
  6. TRR


Emacs附属のゲーム

infoでEmacsの中を探してみてください。 五目並べ(M-x gomoku)などあります。

gnyognyo

「ふ○よふ○よ」というゲームに似たゲームで、広瀬雄二さん作成です。 (動作はかなり違うらしい)。 遊びだすと、やめられません...。
http://www.gentei.org/~yuuji/
より入手可能。

私は、c:/meadow/site-lisp/gnyognyo/gnyognyo.el に ファイルを置き、このディレクトリをload-pathに追加し、 .emacsファイルには、次のように記述しています。

;gnyognyo
(setq gnyo:single-user-mode t)
(setq gnyo:directory "c:/meadow/site-lisp/gnyognyo/")
(setq gnyo:mute t) ;音を出さない
(setq gnyo:colorful nil) ;色をつけない(下の注を参照)
(autoload 'gnyognyo "gnyognyo" nil t)

注: ところで、特に設定をしないと色が付きます。 そして、それは黒地の色です。 しかし、私は白地でMeadowを使っています。
ゲーム中にRETキーを押すと、ゲームが一時中断して、他のバッファーが 表示されますが(いわゆる(?)Boss has come機能)、黒地のままなんです。 これはちょっと不便。
gnyognyo.elの中の"defconst gnyo:colorful"や "defvar gnyo:color-alist"、"defun gnyognyo" 辺りを直接変更すればいいと思うのですが、 よく分っていないので、 とりあえず、自分は色を使わない設定にしています。 ここら辺の変更は、多分簡単なんだろうとは思うので、 研究してみます。

今のところ、このゲームが一番好きです。

Mine Sweeper

Windows附属のゲームでおなじみのもの。marumiさん作。
http://www.osk.threewebnet.or.jp/~miya/marumi/
より入手可能。

私は、defaultのキーバインドが不便だったので、 mine.el内に直接追加しました。

   (define-key mine-mode-map "k" 'mine-move-up)
   (define-key mine-mode-map "j" 'mine-move-down)
   (define-key mine-mode-map "q" 'mine-exit)
   (define-key mine-mode-map " " 'mine-open)
   (define-key mine-mode-map "m" 'mine-mark) ;add by chiyu
   (define-key mine-mode-map "0" 'mine-open) ;add by chiyu
   (define-key mine-mode-map "5" 'mine-move-up) ;add by chiyu

snake

Alex Rezinskyさん作成。
ftp://ftp.mei.co.jp/free/gnu/elisp/elisp-archive/games/
より入手可能。(boss.elも置いてある。)

snake.el.Zという圧縮ファイルは、gunzip.exeで展開できる。 Meadowのdired上で"Z"で展開させようとすると、 "compress"というプログラムを使おうとするので、 .emacsファイルに以下を追加しておくと、 .Z圧縮ファイルにはgunzipを使うようになる。

(setq dired-compress-file-suffixes
  '(("\\.gz\\'" "" "gunzip")
    ("\\.tgz\\'" ".tar" "gunzip")
    ("\\.Z\\'" "" "gunzip")
    ("\\.z\\'" "" "gunzip")
    ("\\.tar\\'" ".tgz" nil)))

boss機能を使わない場合、 (require 'boss) と (snake-boss-has-come) の行をcommentする。

gnyognyoみたいに、得点一覧画面に 個別にuser名を入力できるように改造してみました。

(if (> snake-score (car rlist-tmp))
          (progn
            (setq user (read-string "Your name: ")) ;add by chiyu
            (setq rlistnew (append rlistnew 
                                   (list snake-score 
                                         (concat 
                                          (substring (current-time-string) 11 16)
                                          (substring (current-time-string) 3 10)
                                          (substring (current-time-string) 19)
                                         )
                                         user))) ;changed by chiyu
            (setq snake-score 0)
            (setq j i)
          )
        (setq rlistnew (append rlistnew (list (car rlist-tmp)
                                              (car (cdr rlist-tmp))
                                              (car (cdr (cdr rlist-tmp))))))
        (setq rlist-tmp (cdr (cdr (cdr rlist-tmp))))
      )

getris

MAEDA Atusiさん作成。
ftp://ftp.mei.co.jp/free/gnu/elisp/elisp-archive/games/
より入手可能。

私は.emacsに以下のように記述しています。

;getris
(setq getris-block-string "[]")
(add-hook 'getris-mode-hook
           (lambda ()
             (setq getris-initial-delay 20000)))
(autoload 'getris "getris" nil t)

boss機能を使う場合、getris.el内の(require 'boss)部分を comment outする。
Nemacs用らしいので、Meadowでは getris-block-stringとして2byte文字を使えないらしい。

TRR (トゥルル)

これはタイピング トレイナー プログラム です。 山本泰宇さん作成。これをWindowsに移植したのは 山口 修平さんであり、これは
http://www.netlaputa.ne.jp/%7eyamagus/win32-mule/
より入手可能です。

このままでは複数playerの記録を保存できないので、 以下の様に.elファイルを変更してみました。

1. trr-files.el、trr-graphs.elで以下の変更をする(各2個所):
(user-login-name) => TRR:user-login-name
その他、プレイヤーの名前を各バッファに表示するための変更を含めた パッチを置いています。trr.patch

2..emacsに以下を追加する:

(add-hook 'TRR:load-hook
          (lambda ()
            (setq TRR:user-login-name "")))
(add-hook 'TRR:start-hook
          (lambda ()
            (setq TRR:user-login-name
                  (if TRR:japanese
                      (read-string "あなたの名前: ")
                    (read-string "Your name: ")))))

これで、部屋に遊びに来た友達と得点を競えます。


作成日:1999年 9月 3日
更新日:1999年12月 5日

chiyu (chiyu@sings.jp)
目次に戻る