12月の夜に働く1人
なんとかして、私たち全員がConwayゲーム「Life」に出くわしました。 誰かが自分自身を書き、誰かが見て、疑問に思って、誰かが遊んだ...
新年までに、同僚と同じコンピューターに座って、仕事の終わりに問題を解決すると、問題から少し離れて、なんとかMxライフ (私たちは両方ともEmacsを使用)になりました&emdash; Emacsを初めて使う人は、EmacsでLifeおもちゃを立ち上げるチームです。
面白くない標準
話したいことのようです。 はい、それはEmacsでの実装が約10の「有線」初期位置を持っているだけで、控えめに言っても面白くないです。
あなたはそれを知っています:
コンウェイは当初、最初の組み合わせでは無制限の複製にならないことを示唆し、この仮説を証明または反証する人に50ドルのボーナスを提供しました。
- ウィキペディアからの引用;現在までに、次の図の分類は多かれ少なかれ展開されています。
- ウィキペディアからの引用;- Emacsは拡張可能なテキストエディターです。
combかされた手
私の手は、ゲームの興味深い形式のいくつかを試してみました。 ただし、このためには、「美しい」テンプレートの1つを挿入するのではなく、 ライフ関数の実装がテキストエディタウィンドウの現在のテキストを認識するようにする必要があります。
そして、(Emacs Chf lifeをクリックすることで) ライフ関数のコードを見たところ、すべてがシンプルであることがわかりました 。
(defun xlife () (interactive) (let ((life-patterns (vector (list (buffer-string))))) (life)))
xlife関数は 、現在のバッファーのコンテンツを、 life関数で使用されるグローバルな動的変数 life-patternsにバインドするように設計されています。 そして最後の1つだけを行います。
実装のコピー、フック、ハッキングはありません。
関数のコードをEmacs( CMx )に読み込み 、実行( Mx xlife )します。関数のコードであったテキストが「ライブ」になります。
そして、ここにグライダー 、 ハッカーの紋章があります: