仕組み (マジックチューリングマシン v5: 腐れ肺の再生術師 / 尖塔の大長)
(この記事は以下のページの翻訳です: http://www.toothycat.net/~hologram/Turing/HowItWorks.html)
あなたはきっとチューリングマシンとは何かは知っているだろう。マジックでそれを実現するためにはいくつかの部品が必要となる: いくつかの異なる「色」をしたセルを保持する、双方向に伸びるテープ; 現在位置のセルの色の読み書きができ、また必要とあらばそれ自身の状態を遷移させる事の出来るヘッド; そして「実質的に」双方向に無限に伸びるテープである。
戦場や他のゾーンにおいて必要となるカードの全リストはカードページにある; このページではそのリストを繰り返す事はせず、それぞれのカードが何故必要であるかを説明する。
チューリングテープ
テープは以下のようにして実現される。
Alexにコントロールされた一連のZombieトークンはヘッドの現在位置から右側にあるテープを表す: 例えばヘッドの一つ右にいるクリーチャーはあと1ダメージで死亡するだけのタフネスを持ち、さらに一つ右にいるクリーチャーはあと2ダメージで死亡するだけのタフネスを持つ。同様にAlexは一連のYetiトークンをコントロールしており、これはヘッドの左側にあるテープを表す。
それらのトークンは他にさらに2つクリーチャータイプをもっており、それがそのテープ位置の「色」を示している。簡単のために、以下の議論ではそれらのクリーチャータイプを実際のタイプの代わりにA1のようなコードで呼ぶことにする。タイプは以下のように割り振られる: (全てのタイプは公式のマジッククリーチャータイプリストから来ている。可能な限り「左側の」クリーチャータイプは名前にLを、「右側の」クリーチャータイプはRを、また「共通の」場合にはそのどちらも含まないよう配置した。)
色番号 | 共通クリーチャータイプ | 左側クリーチャータイプ(Yetiに加えて) | 右側クリーチャータイプ(Zombieに加えて) | Messengerタイプとその方向 |
---|---|---|---|---|
1 | Ape (A0) | Ally (A1) | Archer (A2) | |
2 | Bat (B0) | Blinkmoth (B1) | Bringer (B2) | Basilisk (B1M) |
3 | Cat (C0) | Camel (C1) | Carrier (C2) | |
4 | Demon (D0) | Devil (D1) | Dragon (D2) | |
5 | Eye (E0) | Elf (E1) | Efreet (E2) | |
6 | Fish (F0) | Flagbearer (F1) | Faerie (F2) | Frog (F2M) |
7 | Giant (G0) | Golem (G1) | Gorgon (G2) | |
8 | Hag (H0) | Hellion (H1) | Harpy (H2) | |
9 | Imp (I0) | Illusion (I1) | Incarnation (I2) | Insect (I1M) |
10 | Djinn (J0) | Jellyfish (J1) | Juggernaut (J2) | |
11 | Kavu (K0) | Kobold (K1) | Kirin (K2) | Knight (K2M) |
12 | Leech (L0) | Licid (L1) | Lizard (L2) | Leviathan (L1M) |
13 | Mutant (M0) | Moonfolk (M1) | Myr (M2) | |
14 | Ninja (N0) | Noggle (N1) | Nightmare (N2) | |
15 | Ox (O0) | Ooze (O1) | Orc (O2) | |
16 | Pegasus (P0) | Plant (P1) | Praetor (P2) | |
17 | Rat (R0) | Rebel (R1) | Rigger (R2) | Rhino (R2M) |
18 | Shade (S0) | Slith (S1) | Siren (S2) | Sliver (S1M) |
つまり、例えばあるトークンがArcher (A2)であるなら、それは常に同時にApe (A0)でもありZombieでもある。Zombieである事によって、その場所がヘッドの現在位置から右側にある事が示され、Apeである事によってその場所の色が1 (またはA)である事が示される。ヘッドの左側に同じ色をした場所があったなら、Ally Ape Yetiとなる。
「右側に一つ移動する」という操作は以下のように表される: 新たなYetiトークンを一つ生成し(これはヘッドの一つ左となる)、全てのYetiトークンのタフネスを1増加させ、全てのZombieトークンのタフネスを1減少させる。詳細は以下の通り:
マシンは新たに2/2 YetiトークンをAlexのコントロール下に生成し、以下の3つの能力が誘発される: Bobの有毒グール、Cathyの上天の閃光とAlexのカズールの大将軍である。現在はBobのターンなので、それらは説明した順序でスタックに乗る; つまりその逆の順序で解決される。まず初めに、人工進化でハックされたカズールの大将軍の能力が解決され、AlexのYeti達に+1/+1カウンターが置かれ、それぞれ死亡するために必要なダメージが1増える。新たに生成されたYetiトークンは3/3となる。次に、上天の閃光が新たに生成されたトークンに2ダメージを与え、それが死亡するためのダメージは望みどおり1となる。最後に、これもまた人工進化でハックされた有毒グールが全てのYetiでないクリーチャーに-1/-1修正を加え、最もタフネスの低いZombieが死亡する。この最もタフネスの低いZombieが持っていた他のクリーチャータイプによって、異なるイベントが誘発される。以上でマシンは一つ右に移動している。
もし新たに生成されたトークンがYetiでなくZombieであった場合は、また別のカズールの大将軍、さらに別の有毒グールと、これは上記で使用したのと同じ上天の閃光の能力が誘発される。つまりZombie達に+1/+1カウンターが置かれ、Yeti達が-1/-1修正を受ける事を除けば同じ事が起きる。マシンは一つ左に移動している。
トークンのパワーとタフネスは注意深く調整する必要がある。腐れ肺の再生術師は本来2/2のトークンを作る。読み込みヘッドによって作られたトークンは2つのドラルヌの十字軍に影響され、+2/+2の修正を受けるが、死の支配の呪いと1つの仕組まれた疫病によって、-2/-2の修正を受ける。
チューリングヘッド
Yurii Rogozhinの1996年の論文によって公開された、18色のテープからなる最も単純な2状態万能チューリング機械を使用する。このマシンのルールは、ある位置からある色が読まれたとき、マシンがどの状態であるかによって、何をするべきであるかを記述する。例えばルールの最後の数行は以下の通り:
- 状態Bで色16を読んだとき: 状態Bを保ち、その位置を色18に変更し、一つ右に移動する。
- 状態Bで色17を読んだとき: 状態をAに変更し、その位置を色18に変更し、一つ左に移動する。
- 状態Bで色18を読んだとき: 状態Bを保ち、その位置を色13に変更し、一つ左に移動する。
- 状態Aで色16を読んだとき: 状態をBに変更し、その位置を色17に変更し、一つ右に移動する。
- 状態Aで色17を読んだとき: 停止!
- 状態Aで色18を読んだとき: 状態Aを保ち、その位置を色3に変更し、一つ右に移動する
腐れ肺の再生術師と人工進化がチューリングマシンの中核となる重要なカードである。再生術師の大量のコピーが使用され、またそれらはそれぞれ異なるクリーチャータイプの組を監視・生成できるよう変更される。
事実、ヘッドのために43つの再生術師のコピーが使用されるのである! それらのルールテキストは上で示したルールをエンコードするために次のように変更される:
- フェイズアウトしている再生術師16B: 「Pegasus (P0) が死亡するたび、Siren (S1)を1体生成する。」
- フェイズアウトしている再生術師17B (事実上): 「Rat (R0) が死亡するたび、時空の満ち干を唱え、Slith (S1)を1体生成する。」
- フェイズアウトしている再生術師18B: 「Shade (S0) が死亡するたび、Moonfolk (M1)を1体生成する。」
- フェイズインしている再生術師16A (事実上): 「Pegasus (P0) が死亡するたび、時空の満ち干を唱え、Rigger (R2)を1体生成する。」
- フェイズインしている再生術師17A (事実上): 「Rat (R0) が死亡するたび、マシンを停止する。」
- フェイズインしている再生術師18A: 「Shade (S0) が死亡するたび、Carrier (C2)を1体生成する。」
(2, 18) チューリングマシンにおけるプログラミングとの対応を理解していただけるだろう。新たに生成されたトークンのタイプは、その場所をどの色に変更すべきか (A-Sまで、Qを飛ばして)、また左右どちらに移動するべきか(1 or 2)を示す。時空の満ち干を唱える事は状態の変更と対応する。
もちろん、腐れ肺の再生術師を実際にハックして「Pegasusが死亡するたび、時空の満ち干を唱え、Riggerを一体生成する」ようにする事は出来ない。インスタント呪文を誘発効果として唱えられるようにする事はこのチューリングマシンが乗り越えねばならない最大の障害である。
状態の変更
このインスタントを繰り返し唱えるため、このバージョンのチューリング機械は尖塔の大長を使用する。これは呪文冊子もしくは梅澤俊郎を使用する必要があった以前のバージョンと比べてかなり簡単となった。
屍滑りと標本集めを使い、尖塔の大長を繰り返し戦場に出し、荒廃の鎌を装備したタジュールの射手によってそれを殺す。大長は解決したインスタントをCathyの墓地に戻してくれるので、時空の満ち干を好きなタイミングで唱えるために特別な仕掛けは必要ない。
状態を変更するために必要とされる再生術師達は、通常のカズールの大将軍 / 有毒グールの組を誘発しないよう、異なるクリーチャータイプのトークンを生成する必要がある。これらの「messenger」クリーチャータイプを頭文字Mで示す。
- 再生術師 17B は、実際には「Rat (R0) が死亡するたび、Sliver (S1M) を一体生成する。」
- 再生術師 16A は、実際には「Pegasus (P0) が死亡するたび、Rhino (R2M)を一体生成する。」
これらの「messenger」トークンタイプ S1M, R2M等は、YetiでもZombieでもなく、Reflectionである。したがってそれらはカズールの大将軍や有毒グールは誘発しないが、Alexの、人工進化によってReflectionを監視するようハックされたタジュールの射手を誘発する。それらはその後、それらが死亡した際にさらに再生術師達を誘発することで、実際に要求されたトークンを生成する。標本集めによって腐れ肺の再生術師達がBobにコントロールされることで、それらの誘発能力をスタックの正しい場所に乗せる事ができる。
まとめると、状態を変更するために以下が行われる:
腐れ肺の再生術師がAlexにmessengerトークンを生成する。これをSliver (S1M)タイプであるとしよう。これはまた人工進化によってハックされたドラルヌの十字軍によってReflectionでもある。Cathyの上天の閃光と、Alexのタジュールの射手が誘発する。Alexの尖塔の大長が唯一の飛行を持つクリーチャーなので、対象は自動的に選ばれる。
Stack: ...[Cathyの上天の閃光→S1M] ; [Alexのタジュールの射手→尖塔の大長]
タジュールの射手の能力が解決され、またそれは荒廃の鎌を装備しているために萎縮を持つため、尖塔の大長にそれが死亡するのに十分なだけの-1/-1カウンターが置かれる。尖塔の大長の死亡によってCathyの屍滑りが誘発する。
Stack: ...[Cathyの上天の閃光→S1M] ; [Cathyの屍滑り→尖塔の大長]
屍滑りの能力が解決される。これは大長をCathyのコントロール下で戦場に戻そうとするが、Alexの標本集めによって、実際にはAlexのコントロール下で戻る。Cathyの上天の閃光が、また大長の戦場に入る際の能力がAlexの下で誘発する。大長の誘発能力の唯一の対象はCathyの墓地にある時空の満ち干である。
Stack: ...[Cathyの上天の閃光→S1M] ; [Cathyの上天の閃光→尖塔の大長] ; [Alexの尖塔の大長→時空の満ち干]
大長の能力が解決されAlexが時空の満ち干を唱える。
Stack: ..[Cathyの上天の閃光→S1M] ; [Cathyの上天の閃光→尖塔の大長] ; [Alexの時空の満ち干]
時空の満ち干が解決され、Cathyの墓地へと戻る。全てのフェイジング持ちの再生術師達がフェイズインまたはフェイズアウトする。
Stack: ...[Cathyの上天の閃光→S1M] ; [Cathyの上天の閃光→尖塔の大長]
上天の閃光の能力が解決され、尖塔の大長に無意味に2ダメージを与える。これは結果に影響を及ぼさない。
Stack: ....[Cathyの上天の閃光→S1M]
上天の閃光の能力が解決され、そもそもこれを誘発したSliver Reflectionを殺す。
これはBobの7体の腐れ肺の再生術師のうちmessengerトークンの死亡を監視していた1体を誘発する。
Stack: ...[Bobの腐れ肺の再生術師→S1M]
最後にBobの腐れ肺の再生術師の能力が解決される。ここで、それはSliver (S1M)の死亡を感知した再生術師なので、それはSlith (S1)でありShade (S0)でもありまたYetiであるトークンを生成する: これによりテープのその位置は色18となっている。Alexはこのターン標本集めを唱えているので、生成されたトークンはAlexのコントロール下に置かれる(つまりカズールの大将軍から見える)。これはカズールの大将軍、有毒グールと上天の閃光を誘発し、またいつもの処理が継続される。
テープ切れ
初期化したテープを使い切ってしまったらどうればよいか?もしチューリングマシンが以前訪れたことのない位置に到達した場合、通常処理ループは突然停止してしまう。我々が使用するチューリング機械のテープの初期色は1なので、空でApe (A0)である無限に伸びるテープをシミュレーションする必要がある - つまり、あたかもApeトークンがたった今殺されたかのようにマシンが振る舞うようにする必要がある。
解決は簡単である。スタックの一番下、他のどれよりも下に、Bobのコントロールするまた別の腐れ肺の再生術師の能力を置き、それがConstructを生成するようにする(それは標本集めによってAlexのコントロール下に置かれる)。このConstructはApeであるがYetiでもZombieでもない。そのためどのカズールの大将軍も有毒グールも誘発せず、従って上天の閃光により直ちに死亡する。これによって、Ape YetiもしくはApe Zombieがたった今死亡した場合と全く同じようにに、再生術師 1A または 1B が誘発する。そしてまたそれはBobのConstruct 再生術師を誘発してその能力をスタックの一番下に置き、次回テープ境界を超えた際にConstructを作る準備を整える。
停止
最後に、マシンが停止する必要がある場合にはどうすればよいか?状態AにいてRatを見たとき、それは処理の終わりを意味するので、計算を停止する必要がある。
私は、出来ればテープが完全に残るようなやり方で(計算結果がテープから読めるように)、マシンがゲームを終了させるようにしたいと思った。これは初めは一見とても複雑になるように思われるが、実際は極めて簡単だ。全てのプレイヤーのライフは1なので、Alexのコントロールする復讐に燃えた死者がハックされて「復讐に燃えた死者かAssassinが一体死亡するたび、各対戦相手はそれぞれライフを1失う」となっていればいい。
マシン状態がAであるときにRatが一体死亡すると、「Ratが1体死亡するたび、Assassinを1体生成する。」となった再生術師 17A を誘発する。Assassin が生成され、上天の閃光のみを誘発し直ちに死亡する。これは復讐に燃えた死者を誘発し、それが解決されるとき、Alex以外の全員が死にゲームが終了する。これでテープの最終状態を読み取る事ができる。