※この記事は、以下の記事の続編であり、書きかけです。 stepney141.hatenablog.com
前回のPart1では、Betza's Funny Notationの基本となる事項を解説した。 今回のPart2では、BFNの拡張記法を解説していく。
- Betza's Funny Notationの拡張
- 結局どれを使えばいいのか
- 参考文献
Betza's Funny Notationの拡張
Part 1のラストでも述べたように、ここまで説明してきたBFNは、決してあらゆる駒の動きを表せる訳ではない。
また、別格に複雑な動きをする駒はBFNだと記述が過剰に長くなってしまい、読み解くのが大変になるという欠点もある。
BFNが広く使われるようになるにつれてこれらの欠点は徐々に無視できないものとなっていき、
そのうちに「既存のBFNでは不十分だから新しく記号を加えて拡張しよう」という動きが多く見られるようになった。
以下では、そうしたBFNの拡張記法を紹介していく。
留意点として、下で紹介する拡張記法類は原則としてお互いに互換性がなく、 同じアルファベットをお互いに異なる意味で利用しているものもある。 また、Betza氏によるオリジナルの記法と互換性を持つものと、BFNの仕様を独自に進化させて互換性を捨てたものがある。
Ralph Betza本人による拡張記法
これはBetza氏が"Chess on a Really Big Board"というフェアリーチェスを創作した際に導入した記法である。
原作者本人による拡張ということもあって、特に「q」修飾子については拡張ではなくオリジナルのBFNからあったものとして扱われることも少なくない。
円環ライダー
修飾子「q」を追加する。これは「円環ライダー(circular riders)」と呼ばれる種類の駒の動き方を表す。
この「円環ライダー」の概念は、実例を使わなければ説明が難しい。
qK
というBFN表記は、フェアリーチェスやチェスプロブレムで用いられる「ローズ(rose)」という駒の動きを表す。
ローズの動き方は筆者の手に余る複雑なものなので、 詳しくはPiececlopediaやあーかさか氏の解説記事といった、既存の分かりやすい図解を参照されたい。
go修飾子
修飾子「g」を「強制的に進む(go)」の意味で導入(上書き)する。
Betza氏は、シャンチーの「馬」の駒を例にしてこの記法を解説している。 下の図は馬の動き方を表したものである(XXXが馬の現在位置)。
+---+---+---+---+---+ | | * | | * | | +---+---+---+---+---+ | * | | ^ | | * | +---+---+---+---+---+ | | ^ |XXX| ^ | | +---+---+---+---+---+ | * | | ^ | | * | +---+---+---+---+---+ | | * | | * | | +---+---+---+---+---+
馬はチェスのナイトと同じ動き方をする(*
印のついたマス目に跳ぶ)が、
大きな相違点として「他の駒を飛び越えることが出来ない」。
より厳密に言うと、図中の^
の位置が他の駒でふさがれている場合、
その方向の先にある*
印に跳ぶことは出来ない。このルールを「絆馬脚」という。
「まず隣に1マスの^
の位置に移動し、そこからさらに斜め1マス先の*
の位置に移動する」と考えると理解しやすいかもしれない。
Betza氏は、このような馬の動きを「まず駒を取らずにW(ワズィール)の動きをした後、
さらにその位置から見てF(フェルズ)の動きを行うことが強制される」と解釈した。
そして氏はこれを、'go'の頭文字から取った修飾子「g」を用いて、
g[mWF]
と表記した。
Betza氏は拡張記法の説明で「gは使われていないので'go'の意味を割り振る」としているが、 実際にはオリジナルの記法で既に「グラスホッパー」の意味が割り振られている。 単にBetza氏が勘違いしていたのか、 あるいはグラスホッパーとしてのgが他の人にあまり使われていなかったので意味を変えたということなのかは、全く不明である。 紛らわしいためか、このgo修飾子が実際に使われている事例はあまり見られない。gはグラスホッパー修飾子として使われることが一般的のようだ。
then修飾子
修飾子「t」を追加する。これは「then」から取られたものである。
中世スペインに存在した古チェスに「グランド・アセドレフ(Grand Acedrex)」というものがある。
このチェスには現代にない動きの駒が多数あり、Betza氏はこれを表すためにthen修飾子を導入している。
例えば、「グリフォン(Griffon)」と英語では訳されている駒を見てみよう。
この駒についてはPiececlopediaに詳細な図解があるのでそちらをご覧頂きたいが、
ともかくその動きは
t[FR]
という表記で表せる。
これがどういう意味かと言うと、「最初に駒の現在位置から見てF(フェルズ)の動き方をし、そこからさらに続けて(then)、(盤の外側に向かって)R(ルーク)の動きをする」ということである。
XBetza
XBetzaは、コンピュータチェスエンジンと接続して利用するGUIソフトの一つ「GNU XBoard」(コンピュータ将棋で言うところの将棋所やShogiGUIに相当するソフト)で独自に用いられている記法である。
このソフトウェアは普通のチェスだけでなくフェアリーチェス類にも対応しており、入力されたXBetza表記を参照することで、
駒が利いているマスのハイライト表示や合法手生成などを実現している(らしい)。
そうした都合もあって、このソフトウェアにとってXBetzaはかなり重要な存在であり、色々な将棋・チェス類のルールに包括的に対応しなければならないため、
XBetza独自の色々な拡張記法が導入されている。
英語版Wikipediaでもちょくちょく使われているなど、見かける機会はそれなりに多い。
基本原子の上書きなど
基本原子「J」を「C」に、「Z」を「L」に、それぞれ変更する。
また、XBetzaでは角カッコ [ ]
は廃止されている。
アンパッサン
修飾子「e」および「i」を追加する。この両方を組み合わせて、チェスのアンパッサン(en passant)に準ずる駒の取り方を表す。
キャスリング
基本原子「O」を追加する。これはチェスのキャスリングに準ずる動き方を表す。
万能リーパー
基本原子「U」を追加する。これは「万能リーパー(Universal leapers)」に準ずる動き方を表す。
この「万能リーパー」というのは、「どんなマス目にでも一手でテレポートできる」という小学生がノリで考えたみたいな動き方をする駒である。 確かに万能というか、もはやチート級である。 しかし驚くべきことにこの分類に該当する駒はちゃんと実在しており、 例としては摩訶大大将棋や泰将棋といった一部の古将棋に見られる「自在天王」の駒が挙げられる。
持ち駒
基本原子「@」を追加する。これは「その駒を持ち駒として盤上に打つことができる」という意味を表す。
方向を表す修飾子はこの基本原子につけても無意味なため、代わりにそれぞれ以下の意味でオーバーロードされる。
- f:同じ種類の駒が既に存在している筋には、持ち駒として打てない(※例:二歩)
- s:同じ種類の駒が既に存在している斜めのラインの上には、持ち駒として打てない(※二歩の斜めバージョンと考えるとわかりやすい)
- b:同じ種類の駒が盤上のどこかに一つでも存在していたら、持ち駒として打てない
@
の後に自然数nをつけた場合、その数字は「盤上の(自陣から見て)n段目から先には打てない」という意味になる。
上の記法を元に将棋の駒を表すと、二歩・行き所のない駒のルールにより、歩兵はfWf@8
、香車はfR@8
、桂馬はfN@7
となる。他の駒は全て@9
が付く。
again修飾子
修飾子「a」を追加する。これは「一つの手番の中で、一度ある動きをした後、さらにそれに加えて別の動き方をする」という意味を表す。
「a」は'again'から取られている。このagain修飾子があれば、上で述べたBetza氏による拡張記法のうち、go修飾子とthen修飾子は全くの無用の長物になる。
again修飾子とその応用は極めて重要かつ強力な記法なので、特に丁寧に解説する。
基本的な使い方
最初の例として、camK
という表記を見てみる。
これは「一つの手番の中で、まず最初にcK
(Kと同じ駒の取り方をするが、その方向には動かない)として振る舞った後、さらにmK
(Kと同じ動き方をするが、駒は取らない)として振る舞う」という駒を表す。
この例では、a
の前にある修飾子c
を「最初の振る舞い方を表す引数」として取り、a
の後ろにある修飾子m
を「二番目の振る舞い方を表す引数」として取っている。
この駒は、例えば「隣にいる敵の駒を現在位置から動かないまま取った後、追加で1マス動く」みたいな振る舞いが可能になる。
しかし、ここで指定している「二番目の振る舞い方」はmK
、即ち「キングとして動けるが駒を取ることはできない」ということなので、この駒は立て続けに二つの駒を取ることはできない。
XBetzaのオリジナルの解説では、again修飾子の説明にあたり「多脚(legs)」という概念を導入している。
ある駒がこのように複数の動き方を順々に行う場合において、一連の動き方を構成するひとつひとつの動き方のことを「脚(a leg)」という。
上のcamK
の例で言うなら、最初の振る舞い方であるところのcK
が「一本目の脚」にあたり、
二番目の振る舞い方であるところのmK
が「二本目の脚」ということになる。
again修飾子は、要するにこの「脚」の概念を端的に表すための記法なのだ。
ここで、以降の説明を円滑にするため、XBetzaのオリジナルの解説を元に以下のような用語を導入する。
- 開始脚(initial legs):n本の脚からなる一連の駒の動きの中における、1本目の"脚"のこと
- 終端脚(final legs):n本の脚からなる一連の駒の動きの中における、n本目の"脚"のこと
- 非終端脚(non-final legs):n本の脚からなる一連の駒の動きの中における、1本目からn-1本目までの全ての"脚"のこと
again修飾子の性質
このagain修飾子については、注意しておかなくてはならない性質(ルール)がいくつかある。
- again修飾子で指定された「一本目の脚」と「二本目の脚」は、必ず両方とも実行されなければならない(どっちか一方の振る舞い方のみをするという事はできない)。その手番でその駒を動かすことにしたら最後、両方の振る舞い方を完遂させなければならない。
- 「二番目の脚」の中で指定される進行方向の修飾子は、「一本目の脚」の動きを完遂した時点にその駒がいる位置が基準となる。駒の初期位置は基準にはならない。
- ルークやビショップのような限られた方向にしか進めない基本原子についても、その基本原子では本来進めないはずの方向を表す修飾子を適用できる。
- again修飾子は、同時に複数個利用できる。これにより、三本以上の脚がある動きも表現できる。
- 非終端脚はデフォルトで
m
を、終端脚は デフォルトでmc
を、暗黙的な修飾子として持っているものとみなす。
これらのルールについて理解を深めるため、別の例をいくつか見てみよう。
masR
は、「一本目の脚がmR
、二本目の脚がsR
」という動き方である。
これを噛み砕いて言うと、「一つの手番の中で二つの異なる振る舞い方をし(a
)、一回目の振る舞い方においては駒を取ることはできず(mR
)、二回目の振る舞い方においては一回目とは垂直な動き方をせねばならない(sR
)が、二回目においては駒を取っても取らなくてもよい」という条件を持つルークを表している。
2.のルールにより、まずルークとして一回動いて止まった後、さらにそのマス目からスタートして、「今までの進路と垂直な方向にしか進めないルーク」としてもう一回振る舞うのである。
mafsR
は、「一本目の脚がmR
、二本目の脚がfsR
」という動き方である。
これを噛み砕いて言うと、「一つの手番の中で二つの異なる振る舞い方をする(a
)。駒を取らないルークとして敵の駒のないマスへ一旦動いた後(mR
)、斜め45度方向に向きを変えてもう一度動く(fsR
)」という動きを表している。
本来、ルークは斜め方向に進むことができない。しかし3.のルールにより、まずルークとして一回動いて止まった後、さらにそのマス目からスタートして、「斜め方向に薦めるルーク」としてもう一回振る舞うのである。
mamaK
は、「一本目の脚がmK
、二本目の脚がmK
、三本目の脚がK
」という動き方である。
これを噛み砕いて言うと、「任意の方向へキングの動きを三回行うことができる。三回目の動きの時には相手の駒を取ることができるが、
一回目と二回目の動きにおいては空のマス目にしか行くことができない」ということになる。
3.のルールを用いているのが、上の例のうちのmafsR
だ。
このようにagain修飾子と方向修飾子をうまく使うことで、「R(ルーク)とB(ビショップ)」「W(ワズィール)とF(フェルズ)」「D(ダッバーダ)とA(アルフィル)」など、
縦横方向と斜め方向で動きが対になっている基本原子の組を『相互変換』することができる。
一見単にややこしいだけのように思われるかもしれないが、この『相互変換』を使えば、
例えば「一本目の脚が(駒を取れない)ルーク、二本目の脚がビショップ」といった二つの基本原子が絡むようなややこしい動きであっても、
mavR
と簡潔に表すことができるようになるのだ。
5.のルールは、Part1で説明した「特殊ルールを表す修飾子」に関連する。
要するに、駒の動き方や取り方について特別に指定しない限りは、非終端脚はm
という修飾子を、終端脚はmc
という修飾子を、それぞれ暗黙的に持っているものとみなすということだ。
このルールは、例えばp
(シャンチーの砲のように、進行方向上にある駒を一個だけ飛び越えて着地する)のような修飾子を考える際に重要になってくる。
非終端脚についてmp
という修飾子を付けた場合、
これを踏まえた上で、m
とc
以外の特殊ルールを表す修飾子を使った例を見てみよう。
pasR
は、「一本目の脚がpR
、二本目の脚がsR
」という動き方である。 これを噛み砕いて言うと、「他の駒を一個飛び越えて着地してからでなければ、直角に方向転換することができないルーク」ということになる。cpasR
は、「一本目の脚がcpR
、二本目の脚がsR
」という動き方である。 これを噛み砕いて言うと、「他の駒を、直角に方向転換することができないルーク」ということになる。mpafsK
は、チェスのナイトを基本原子を使わず表したものである。
性質と応用
このため、非終端脚におけるm
修飾子・終端脚におけるc
修飾子は、これを省略することができる。
この規則に従うと、maK
(一本目の脚がmK
、二本目の脚がK
)という記述は、aK
と略記することができる。
同様に、先程のmamaK
もaaK
と省略することが可能である。
しかし、可読性を損ねるのでこの略記を実際に使うのはやめておいたほうがいいだろう。
Betza 2.0
Betza 2.0は、XBetzaをさらに拡張することで既存のBFNの持つ問題点を可能な限り解決しようとしたものである(らしい)。
丸カッコ記法
半角丸括弧 ( )
を導入する。これは、特に何か新しい意味を追加するものではなく、
Betza's Funny Notationの「長くなると可読性が極端に下がる」という欠点を解決するためのものである。
連鎖(Chaining)記法
XBetzaでは、一手のうちに複数の異なる動きをする駒を記述するために「脚」の概念が導入されていた。
Betza 2.0では、これをさらに拡張して「連鎖(Chaining)」という概念を導入している。
XBetzaの「脚」の概念に基づいたagain修飾子は、ルールがややこしい上に、2つ以上の基本原子の動きを順番に行うような動きに弱かった。
Betza 2.0では、複数の脚からなる動きのことを「連鎖」と定義し、これを記述するための記法として半角ダッシュ記号 -
を導入した。
例として、シャンチーの「象」の駒を見てみよう。
この駒は「斜め方向に2マス進むが、自分の斜め1マス隣に他の駒があればその先に進むことはできない」という動き方をする。
このルールを脚の概念を用いて再解釈すると「一本目の脚はmF
、二本目の脚はF
」と見ることができる。
Betza 2.0では、これを連鎖記法を用いて mF-F
と表す。
同様にシャンチーの「馬」も、同じようにして mW-F
と表すことができる。
BFNやXBetzaではnA
と表していたものが、連鎖記法を使うことで、脚の概念に基づいて表すことができるようになるのだ。
別の例として、(チェスではないが)チェッカーにおける駒の取り方・動き方を見てみる。
これは連鎖記法と丸カッコ記法を用いることで、fmF(fcF-mF)
と表される。
XBetzaでは、同じ動きを fcafmF
と表す。Betza 2.0の方が記述は長いが、より分かりやすいものになったと言えるのではないだろうか。
XBetzaのagain修飾子と同じく、Betza 2.0の連鎖記法においても、駒の動き方や取り方について特別に指定しない限り非終端脚はm
という修飾子を暗黙的に持っているものとみなされる。
したがって、先ほど例に挙げたシャンチーの馬 mW-F
の場合は、m修飾子を省略して W-F
と略記できる。
destroy修飾子
修飾子「d」を追加する。これは敵味方関係なく駒を取ることを表す。
test修飾子
修飾子「t」を追加する。これは自分の駒の上しか飛び越えることができないことを表す。
stray-off修飾子
修飾子「o」を追加する。これは盤の左右両端が繋がっている
変則将棋の「反射角」、またはフェアリーチェスのReflecting Bishop
unload修飾子
修飾子「u」を追加する。これは自分の駒を自分で取ることを表す。
変梃記法
「変梃記法(Quirky stuff)」
(W-F)0
は、シャンチーの馬を走り駒化させた「マオライダー」である。
※走り駒化のイメージについては、あーかさか氏の解説記事が分かりやすいと思われる。
これはオリジナルのBFNで言うところの nN0
と全く等価なのだが、Betza 2.0の「変梃記法」を用いた場合、駒が動けなくなる条件がより分かりやすくなるというメリットがある。
Bex Notation
これはフェアリーチェス創作家のDavid Howe氏が2012年に発表したもので、正式には"Proposed Betza Extended Notation"という。 これを略して「Bex Notation」と称しているというわけだ。 XBetzaやBetza 2.0よりも後に考案されたため、両者の記法を部分的に取り込んでいる。
この拡張では、アルファベット・数字・角カッコ以外の特殊記号を、「操作子(operator)」として多量に導入しているのが特徴である。
また、Howe氏自身が考案した特殊な駒の動きを表すための記法が多く用意されている。
グルーピング記法
丸括弧 ( )
を導入する。これはBetza 2.0の丸括弧と全く同じ役割をし、意味上の区切りを明示するためのものとして使われる。
(A)
は、普通の基本原子A
と全く同じ意味である。(imfW2)(mfW)(cfF)
は、imfW2mfWcfF
と全く同じ意味である。※「i」は同じBex Notationのinitial修飾子(後述)
このように、丸括弧で「修飾子+基本原子」の組を一つ一つ囲っていくことで、意味上の区切りをはっきりさせて可読性を上げる働きがある。
継続操作子
半角ダッシュ記号 -
を導入する。
これは、XとYを任意の基本原子として、X-Y
とすることで「XとYの動きを繋げて実行する。途中で進行方向を変えられない」ことを表す。
これを用いると、上でも説明したシャンチーの「馬」の動きはmW-F
と表される。
Betza 2.0の連鎖記法と同じものである。
連続操作子
半角ダッシュ記号を2つ繋げたもの --
を導入する。
これは、XとYを任意の基本原子として、X--Y
とすることで「XとYの動きを繋げて実行する。途中で進行方向を変えられる」ことを表す。
フェアリーチェス類の駒で、「ダブルナイト」というものがある。これは「まず駒を取らずにナイトの動きをし、続けてもう一回ナイトの動きをする(このときは駒を取れる)」という動き方をするものだ。
XBetzaのagain修飾子を使えばmaN
となるが、Bex Notationでは連続操作子を使うことでmN--N
と表す。
XBetzaのagain修飾子が形を変え、先程の継続操作子と役割を分割したものだと考えればよい。
合成操作子
半角プラス記号 +
を導入する。
これは、XとYを任意の基本原子として、X+Y
とすることで、普通のBFNにおける XY
と全く同じ意味を表す。
これも丸括弧と同様、長いBFNの記述に合成操作子を挟むことで可読性を挙げることを目的としている。
imfW2+mfW+cfF
は、合成操作子を使わずに書いたimfW2mfWcfF
と完全に等価である。
また、これは上で説明したグルーピング記法(丸括弧)と併用でき、この例で言えば(imfW2)+(mfW)+(cfF)
とも表すことができる(グルーピング記法の定義上、意味は変わらない)。
ライダー操作子
半角アスタリスク記号 *
を導入する。
これは、Xを任意の基本原子として、X*
とすることで、普通のBFNにおける XX
と全く同じ意味を表す。
フェアリーチェスの中でもメジャーな駒として「ナイトライダー」というものがある。
これは、チェスのナイトの動きを拡張して、ルークやビショップのような「走り駒(ライダー)」に昇華させたものだ。
この駒の動きは文章よりも図で見た方が分かりやすいので、詳しくは丁寧な図解が載っているあーかさか氏の解説記事を参照されたい。
このナイトライダーの動きは、ライダー操作子を用いて N*
と表される。
ナイトライダーと同じ要領で他にも色々な駒を走り駒へ拡張することが出来る。
シャンチーの馬を走り駒化させた「マオライダー」は、ライダー操作子を用いることで (mW-F)*
と表される。
限定ライダー操作子
「修飾子+基本原子」の組の後ろに、2以上の数字を指定することで、 「最大で指定した数字の回数まで同じ動きを繰り返すライダーになる」という意味になる。
「最大で前に2マスまで進む(1マスだけでも良い)」という動きは mfW2
と表される。
厳密限定ライダー操作子
「修飾子+基本原子」の組の後ろに、2以上の数字を指定して、その数字の前に0を付けることで、 「指定した数字の回数だけ同じ動きを繰り返すライダーになる」という意味になる。
「前に2マス進む」という動きは mfW02
と表される。
Null-Move原子
基本原子「O」を導入する。これは(0,0)-Leaperを表す。
繰り返すが、これは(0,0)-Leaperである。つまり「その場から移動しない(Null-move)」駒である。
その場から動けないことに何の意味があるんだ?と思うかもしれないが、これは「手待ち」に使えるのである。
チェスはルール上パスが出来ず、その上「パスが最善手となる局面」、つまりどう駒を動かしても自分が不利になってしまう局面(これをチェス用語でツークツワンクという)の出現がたまによくある。
ゼロはこれを解消し、合法的にパスをするための手段として、チェスプロブレムやフェアリーチェスで導入されることがあるという。
日本の将棋類でも、ゼロ駒とは本質的に異なるものではあるが、古将棋類の「獅子」などの駒は同じような事が出来る(中将棋ではこの動き方を「じっと」という)。
royalty修飾子
修飾子「y」を導入する。これは「その駒がロイヤル駒である」ということを表す。
ロイヤル駒とは、王将やキングのように「これを詰まされる/取られると負ける」という駒のことである。 古将棋類に見られる「太子」という駒は、ロイヤル駒の一種である。 太子の駒がある古将棋では、王将と太子を両方とも取られたり詰まされたりしない限り負けにはならない。
initial修飾子
修飾子「i」を導入する。これを用いることで、最初にその駒を動かす時のみに適用される特殊な動き方を指定する。
チェスのポーンの「駒を取ることはできないが前に1マス進み、駒を取るときは斜め前に1マス進む。最初に動かすときのみ前に2マス進む」という動きは、
imfW2+mfW+cfF
として記述することが出来る。
e修飾子
修飾子「e」を導入する。これは、本来なら駒を飛び越さない動きに付けることで、駒を飛び越える動きをすることを表す。
オリジナルのBFNであれば、同じようなことを「j」修飾子で表す。
将棋の桂馬は、e(mfW-F)
と表される。
jump修飾子
修飾子「j」を、オリジナルのBFNで言うところの「p」修飾子の意味で上書きする。
Bex notationでは、「j」修飾子はリーパーに付けるものという前提が定められており、「j」修飾子をリーパーに付けることによってホッパーに変更する仕組みになっている。
Leaper記法
m, nを任意の自然数として、 (m, n)
という記法を導入する。これは(m, n)-Leaperを意味し、これ単体で基本原子として扱われる。
成り駒記法
Bex Notationの後ろに「半角イコール記号と成り駒の動き」を付け加えることで、 「イコールの前にある動きの駒が、イコールの後ろにある動きの駒に成る(プロモーションする)」ということを表す。 成り駒が複数ある場合、半角カンマ記号で各成り駒を区切る。
例えばチェスのポーンの場合、クイーン・ルーク・ビショップ・ナイトのどれかに成ることができる。
これは imfW2+mfW+cfF=Q,R,B,N
と表される。
なお、この記法は「この駒はこういう駒に成る」という変化の仕方のみを表すものであり、成るための条件を表す記法は用意されていない。
例えばチェスの場合、ポーンは自分から見て一番奥の段まで進まなければ成ることができない。
また摩訶大大将棋などの一部の古将棋では、本将棋などのように「敵陣に入ったら成る(不成も可能)」というルールはなく、代わりに「敵の駒を取ったら強制的に成る」というルールになっている。
Bex Notationでは、このような成りに関しての規定を表す記法は用意されていない。
エキゾチック操作子
フェアリーチェスの世界には、リーパー・ライダー・ホッパーの基本三分類に収まらないトリッキーな駒...Howe氏の言葉を借りれば"異風(Exotic)"な駒が頻出する。
そうした駒の動きは、基本原子と修飾子の枠に縛られるBFNでは表現することが難しい。
またBFNで使われていた角カッコ[ ]
は、Bex Notationにおいてはここまで紹介してきた多様な操作子を使えば全くの無用の長物になる。
そこで、Bex Notationでは、基本原子と修飾子では表せないトリッキーな動き方を角カッコを用いて出来る限り表そうと試みている。
以下の説明において、大文字アルファベット M
は任意の基本原子を表す。
[ca]
= アドバンサー(Advancer)のような駒の取り方をする。すなわち、着地したマス目に隣接する位置にある駒を取る。[cw]
= ウィズドローワー(Withdrawer)のような駒の取り方をする。すなわち、着地したマス目から見て進行方向と逆側にある駒を取る。[cj]
= 駒を飛び越えて、その駒を取る。一手で飛び越えられる/取れる駒は一個だけ。[cl]
= 駒を飛び越えて、その駒を取る。一手で飛び越えられる/取れる駒は何個でもよい。[ci]
= カメレオン(Chameleon)。すなわち、自分に利きがある全ての駒の動きを模倣する。このタイプの動き方の例については、英語版Wikipediaによるカメレオンの解説が詳しい。[ccM]
= 敵の駒を挟み撃ち(custodial capture)する。すなわち、基本原子M
の動き方をし、はさみ将棋の要領で敵の駒一個を他の自分の駒とで挟んで取る。この取り方にはいくつか条件があるが、これについてはPiececlopediaの解説を参照。[cu]
= 自分自身を道連れにして、隣接するマスにいる敵の駒を取る。[crM]
= 自分から見て基本原子M
の利きに入っている駒を全て取る。[xiM]
= イモビライザー(Immobilizer)の効果を持つ。すなわち、自分から見て基本原子M
の利きに入っている敵の駒を全て「凍結(イモビライゼーション)」させ、その場から動けなくする。凍結させられた駒は、イモビライザーが別の場所に行くか取られるかするまで動くことができない。[x!iM]
= 自分から見て基本原子M
の利きに入っている敵の駒のうち、イモビライザーによって動けなくなっている駒を全て「解凍(アンイモビライゼーション)」させ、イモビライザーの効果を解除する。[xwM]
= 自分から見て基本原子M
の利きに入っている任意の駒(自分の駒も含む)の位置と、自分が現在いる位置を入れ替える。[xo]
= 自分が一手前にいたマス目へまた戻る。
エキゾチック操作子を用いて実際の駒の動き方を表したものとして、Howe氏は以下のような例を紹介している。
- バロック・チェス(アルティマ)の「イモビライザー(Immobilizer)」:
[x!iK]--mQ--[xiK]
- バロック・チェスの「ウィズドローワー(Withdrawer)」:
mQ+[cw]Q
- バロック・チェスの「ロングリーパー(Long Leaper)」:
mQ+[cl]Q
- バロック・チェスの「カメレオン(Chameleon)」:
mQ+[ci]
- バロック・チェスの「ピンサーポーン(Pincer Pawn)」:
mR+mR--[ccD]
- ロココの「スワッパー(Swapper)」:
mQ+[xwQ]+([crK]--[cu])
- ロココの「キャノンポーン(Cannon pawn)」:
mK+j(AD)
- 中将棋の「獅子」:
K+(DAN)+(K-K)+[crK]+(mK--[xo])
※中将棋特有の獅子の特殊ルールはこの記述に含まれていない
Modified Betza Notation
結局どれを使えばいいのか
どの拡張記法も一長一短なのだが、個人的には「広く使われている」 「オリジナルのBFNとの互換性をある程度保っており、覚えることが少ない」という理由からXBetzaを推奨したい。 しかし「汎用性が高い」「可読性に配慮している」 という点では、Bex Notationに軍配が上がる。 Betza 2.0も色々と便利な記法は多いのだが、どうも仕様自体が未完成っぽいので推奨はしない。
Bex Notationでは、操作子をいくつも追加するなどの大規模な変更を行うことで、
可読性を上げる・XBetzaのagain修飾子の難解な仕様を分解する・オリジナルのBFNの曖昧な仕様を厳密にするなどの改良を行っている。
しかし、オリジナルとのBFNとの互換性が壊れてしまっている箇所や、改良しようとするあまり仕様がかえって分かりにくくなってしまっている箇所が見られる。
はっきり言ってどの記法も一長一短であり、全てのメリットを取り込んで互いのデメリットを打ち消し合っているような、統合された記法が必要かもしれない。
しかし、マニアの間でのデファクトスタンダードはXBetzaであると断言しても問題はないだろう。
参考文献
BFNの総合的な解説
- https://en.wikipedia.org/wiki/Betza%27s_funny_notation
- http://akasaka0x16.blog.fc2.com/blog-entry-137.html
- http://geolog.mydns.jp/www.geocities.jp/tohokuchess/co/betza/betza.html
- https://www.chessvariants.com/d.betza/chessvar/pieces/notation.html
- https://www.chessvariants.com/piececlopedia.dir/betzanot.html
拡張記法の解説
- https://www.chessvariants.com/d.betza/chessvar/16x16.html
- https://www.gnu.org/software/xboard/whats_new/rules/Betza.html
- https://www.gnu.org/software/xboard/Betza.html
- https://www.chessvariants.com/page/MSbetza-notation-extended
- http://hgm.nubati.net/rules/Betza.html
- http://hgm.nubati.net/Betza.html
- http://www.chessvariants.com/dictionary/BexNotation.pdf
- http://ccif.sourceforge.net/modified-betza-notation.html