Project Fx 2.0

怪文書と備忘録を書きます

フェアリーチェスのための駒表記ガイド 〜Betza's Funny Notation事始め〜:Part 1

はじめに

世界には、将棋やチェスの他、インドのチャトランガ・中国のシャンチー・ペルシアのシャトランジ・朝鮮半島チャンギなど、 将棋やチェスに類似したボードゲームが大量に存在する。 また、既存のボードゲームのルールをマニアが独自にアレンジした「変則ルール」とか「フェアリールール」と呼称されるものもある。 さらには、そうした変則ルールを採用した詰将棋チェスプロブレム(※詰将棋のチェス版みたいなもの)も存在する。

これらの将棋系ボードゲームの中には、一般的なボードゲームには登場しないマイナーな駒も多く存在する。 そしてその中には、簡単には理解しにくいトリッキーな動き方をするものも少なくない。 自然言語でそうした複雑の動きを記述しようとすると、当然の帰結として説明自体も長く複雑になってしまいがちであり、 ひいては誤解や誤記が生じることにもつながりかねない。 この問題を解決するため、決まった記号の組み合わせで可能な限り多くの駒の動きを表現しよう!という欲張ったことを考えた人物が歴史上には複数存在した。 現在では、その中の一人であるRalph Bezta氏が考案した記法「Betza's Funny Notation」が、マニアの間で最も広く利用されていると断言してよい。 この記事は、この「Betza's Funny Notation」とその拡張記法の詳細を駒の実例を挙げつつ紹介するものである。

Betza's Funny Notation

1. 概要

Betza's Funny Notationは、世界の将棋類の駒の動きを体系的に表記するための記法である。
チェスのFIDEマスターにしてフェアリーチェス創作家でもある、アメリカのRalph Betza氏によって考案された。

Betza's Funny Notationの特徴は「駒の動き方を細かく分解して、基本的な駒の動きの組み合わせとして表現する」という原則に基づいていることにある。 例えば、将棋をすでに知っている人がチェスの駒の動きを覚える時、その人は「クイーンは飛車と角行を合わせた動きをする」という風に認識するだろうし、 逆にチェスをすでに知っている人が将棋の駒の動きを覚える時は、「香車は前方向にしか進めないルークだ」と認識するかもしれない。 Betza's Funny Notationでは、これと似た表し方をする。 つまり、「この駒はナイトとキングを合わせた動き」「この駒は2マスまでしか動けないルーク」という要領で、 あらゆる駒の動きを一般的な駒の動きの組み合わせに分解して表記していくのである。

知識がなければ一見して分かりにくい表記となるのが欠点ではあるが、 汎用性・柔軟性・拡張性に富んでおり、チェスプロブレムを中心に広く用いられている。 例えば、英語版Wikipediaで古将棋関係のページを開くと、駒の動きを解説するパートにはほぼ必ずその駒のBetza's Funny Notation(の拡張記法)による表記が付されている。
以下、特記しない限り「Betza's Funny Notation」を「BFN」と省略して書く。

BFNは、例えば以下のような英数字の列として記述される:

  • 例1) fhNfrlRK
  • 例2) fsLloRgBK

BFNは決められた規則に従って記述されるものであり、その法則から逸脱することはない。

2. 基本ルール

BFNの基本となる要素は、次の2つのみである。

  • 大文字アルファベット:「基本原子(atoms)」
    • 駒のベースとなる動きを表す。
  • 小文字アルファベット:「修飾子(modifiers)」
    • 大文字の基本原子を修飾して、基本原子だけでは表せない様々な動きやルールを補足する。

大文字X, Yと小文字a, bを用いて、BFNの基本的なルールを簡単に示す。
なお、これらのアルファベットはあくまで説明のために便宜上使用しているものであり、以下の例がそのまま実際のBFNの表記というわけではない。

例1: aX
この例では、Xという基本原子の動きをベースとして、その動きをaという修飾子で補足している。
やや乱暴な例えだが、英語の形容詞と名詞の関係に近いかもしれない。形容詞が修飾子、名詞が基本原子にそれぞれ相当すると考えればいいだろう。

修飾子が一つの基本原子に複数付くことも出来る。
例2: abX
この例では、Xに当たる基本原子の動きに基づき、その動きをaとbの2つの修飾子で補足している。
先の比喩で言うと、英語でも2個以上の形容詞で1つの名詞を修飾することがあるが、それと似ている。

異なる基本原子が複数並ぶ場合もある。
例3: XY
この「XY」という表記は、「ひとつの手番でXまたはYの動きが出来る」ということを表す。
「XYZ」であれば、「XまたはYまたはZの動きが出来る」という意味である。
異なる基本原子が複数並んでいる時は、本来なら基本原子の間にあるはずの「or(または)」が省略されていると考えるといい。
例えばXYX or Yを略したものとみなせる。すなわち、「XまたはYの動きをすることが出来る」という意味だ。
ルークの動きを表す基本原子をR、ビショップの動きを表す基本原子をBとすると、 クイーンの動きはRBというBFNで表現できる。
これは「ルークまたはビショップのどちらかの動きを選んで、その動きに従って駒を動かす」という意味である。

同じ基本原子が2つ並ぶ場合もある。
例4 : XX
基本原子Xを2つ連続させた場合、その駒はXの動きを無限にすることが出来ることを表す。

基本原子の後ろに数字を付けた場合、基本原子の動きがその数字の分に制限されることを意味する。
例5 : X5
この例の場合、Xという動きを出来る範囲が5マスであるということを表している。

複数の基本原子を[](角カッコ)で囲んだ場合、それらを基本原子をまとめてひとつの基本原子とみなす。
例6 : [XY]
この例の場合、「まずXの動きに従って駒を動かし、次にYの動きに従って駒を動かす、という操作を1回の手番で行う」という意味になる。
例7 : a[XY]
角カッコで囲んだ基本原子の組にも修飾子を適用できる。

3. 基本原子

まず、実際のBFNで用いられる基本原子(atoms)の一覧を見てみよう。

Fig.01
(Oが駒の現在位置。
基本原子が書いてあるマスが、その基本原子が表す動き)
+---+---+---+---+---+---+---+
| G |   |   | H |   |   | G |
+---+---+---+---+---+---+---+
|   | A |   | D |   | A |   |
+---+---+---+---+---+---+---+
|   |   | F | W | F |   |   |
+---+---+---+---+---+---+---+
| H | D | W | O | W | D | H |
+---+---+---+---+---+---+---+
|   |   | F | W | F |   |   |
+---+---+---+---+---+---+---+
|   | A |   | D |   | A |   |
+---+---+---+---+---+---+---+
| G |   |   | H |   |   | G |
+---+---+---+---+---+---+---+
Fig.02
(Oが駒の現在位置。
基本原子が書いてあるマスが、その基本原子が表す動き)
+---+---+---+---+---+---+---+
|   | J | L |   | L | J |   |
+---+---+---+---+---+---+---+
| J |   | N |   | N |   | J |
+---+---+---+---+---+---+---+
| L | N |   |   |   | N | L |
+---+---+---+---+---+---+---+
|   |   |   | O |   |   |   |
+---+---+---+---+---+---+---+
| L | N |   |   |   | N | L |
+---+---+---+---+---+---+---+
| J |   | N |   | N |   | J |
+---+---+---+---+---+---+---+
|   | J | L |   | L | J |   |
+---+---+---+---+---+---+---+
  • A:シャトランジの「アルフィル」(Alfil, 象)。間にある駒を飛び越えつつナナメ方向の2マス先へ進む。
  • D:タメルラン=チェスの「ダッバーダ」(Dabbaba, 攻城兵器)。間にある駒を飛び越えつつタテかヨコの2マス先へ進む。
  • F:タメルラン=チェスの「フェルズ」(Ferz, 将)。ナナメに1マス進む。
  • G:「トリッパー」。間にある駒を飛び越えつつナナメ方向の3マス先へ進む。
  • H:「スリーリーパー」。間にある駒を飛び越えつつタテかヨコの3マス先へ進む。
  • J:「シマウマ」。間にある駒を飛び越えつつ、3マス直進して、さらに左右のどちらかに2マス進んだ位置に進む。
  • L:「ラクダ」。タメルラン=チェスのズラーファ(Zurafa, キリン)と同じ。間にある駒を飛び越えつつ、3マス直進して、さらに左右のどちらかに1マス進んだ位置に進む。
  • N:チェスのナイト。間にある駒を飛び越えつつ、2マス直進して、さらに左右のどちらかに1マス進んだ位置に進む。
  • W:タメルラン=チェスの「ワズィール」(Wazir, 宰相)。タテヨコに1マス進む。

WとFの2つは言うなれば「単位原子」とでも言うべきもので、この2つさえあればR(ルーク)・B(ビショップ)・Q(クイーン)・K(キング)を全て表すことが出来る。 まずキングは「8方向全てに1マス進める」駒なので、WFというBFNで表すことが出来る。 Wを2つ重ねてWWとすれば、「Wの動きを無限に出来る」という意味になり、これはすなわちルークの動きである。 同様に、FFはビショップの動きを表す。 そしてクイーンはルークとビショップを合わせた動きをするから、WWFFまたはRBと表せる。

糖衣構文

  • R:チェスのルーク。タテヨコ方向にどこまでも動く。WWと同じ。
  • B:チェスのビショップ。ナナメ方向にどこまでも動く。FFと同じ。
  • Q:チェスのクイーン。タテヨコ・ナナメ方向にどこまでも動く。RBまたはWWFFと同じ。
  • K:チェスのキング。全方向に1マス動く。WFと同じ。

4. 修飾子

修飾子(Modifiers)は基本原子を修飾し、基本原子だけでは表現できない動き方や駒の取り方などを補足する。 実際のBFNで用いられる修飾子の一覧を見てみよう。

方向を表す修飾子

  • b:後ろ方向(backwards)
  • bb:後ろ側の中の後ろ(backward-backward)
  • bs:後ろ側の中の横(backward-sideways)
  • bh:後ろ半分(backward-half)
  • f:前方向(forwards)
  • ff:前側の中の前(forward-forward)
  • fs:前側の中の横(forward-sideways)
  • fh:前半分(forward-half)
  • h:半分(half) ※基本的に「f」や「b」とセットで使う
  • l:左方向(left)
  • r:右方向(right)
  • rl:右方向または左方向(right-left) ※「s」と同じ
  • s:右と左(sideways) ※「rl」と同じ
  • v:前と後ろ(vertical) ※「fb」と同じ

特殊ルールを表す修飾子

  • c:その方向に進んで駒を取る。基本的に「m」とセットで用いる
  • g:グラスホッパー(grasshopper)と同じ駒の動き方をする。すなわち、進行方向にある他の駒を1個だけ飛び越えて、その1マス先に着地する
  • j:他の駒を飛び越える(jumping)
  • m:その方向に進むが駒は取らない。基本的に「c」とセットで用いる
  • n:他の駒を飛び越えることができない(non-jumping)
  • o:円筒盤(cylindrical)の動きをする。すなわち、まるで盤が円筒状になっていて両端が繋がっているかのようにして、盤の端っこから反対側の端っこへ1手で動くことが出来る
  • p:シャンチーの炮(pao)と同じ駒の取り方をする。すなわち、進行方向にある別の駒を1つ飛び越えて、その先にある駒を取る
  • z:ジグザグに動く(zig-zag, crooked)

5. Betza's Funny Notationの実例

Betza's Funny Notationを用いると、実に多くの種類の駒の動きが体系的・客観的に表記できる。
以下では様々な駒の動きを例として挙げつつ、BFNの基本原子・修飾子についてより詳しく掘り下げていく。

世界の将棋類の駒の分類

世界の将棋類の駒は、原則としてこれら3つに大別される(例外もある)。

  1. リーパー(Leapers, 飛び駒)
  2. ライダー(Riders, 走り駒)
  3. ホッパー(Hoppers, 跳ね駒)

BFNがこの分類に従って作られているという訳ではないのだが、この分類をイメージすると分かりやすい。

また説明の都合上、次のように将棋/チェスのマスを座標として表したものを導入する。駒の現在位置が原点(0,0)である。

+---------+---------+--------+--------+--------+
| (-2, 2) | (-1, 2) | (0, 2) | (1, 2) | (2, 2) |
+---------+---------+--------+--------+--------+
| (-2, 1) | (-1, 1) | (0, 1) | (1, 1) | (2, 1) |
+---------+---------+--------+--------+--------+
| (-2, 0) | (-1, 0) | (0, 0) | (1, 0) | (2, 0) |
+---------+---------+--------+--------+--------+
| (-2,-1) | (-1,-1) | (0,-1) | (1,-1) | (2,-1) |
+---------+---------+--------+--------+--------+
| (-2,-2) | (-1,-2) | (0,-2) | (1,-2) | (2,-2) |
+---------+---------+--------+--------+--------+
ライダー(Riders)

一つの方向にどこまでも行けるタイプの駒を指す。将棋の飛車や角行や香車、あるいはチェスのルークやビショップやクイーンなどが該当する。

ライダーに該当する基本原子を列挙する。

  • R:チェスのルーク。タテヨコ方向にどこまでも動く。将棋の飛車と同じ。
  • B:チェスのビショップ。ナナメ方向にどこまでも動く。将棋の角行と同じ。
  • Q:チェスのクイーン。この動き自体は「RB」というBFNで表すことが出来る(「Q」は一種の糖衣構文)。
  • K:チェスのキング。前後左右またはナナメ方向に1マス動く。

「1マスずつ進む動きを表す基本原子」も、「1マスしか動かないライダー」と見なすことが出来る。

  • W:タメルラン=チェスのワズィール(Wazir, 宰相)。タテヨコに1マス進む。
  • F:タメルラン=チェスのフェルズ(Ferz, 将)。ナナメに1マス進む。
リーパー(Leapers)

簡単に言うと「桂馬/ナイトのように、他の駒を飛び越して動く駒」を指す。
例えば桂馬は「2マス前に進んで1マス横に動く」ような動きをする訳だが、先述の座標表記を使うとこのような動きを一般化して表せる。

リーパーの動きは、任意の自然数m,nを用いて「(m,n)-Leaper」と一般化して表記される。 「(m,n)-Leaper」というのがどういう意味なのか、チェスのナイトを例にして説明する。
座標の原点(0,0)が今ナイトのいる場所だとすると、ナイトの行けるマスは
(1,2), (-1,2), (-2,1), (-2,-1), (-1,-2), (1,-2), (2,-1), (2,1) の合計8つである。
これを簡略化して、「前方向への動き方、つまり(1,2)と(2,1)の情報だけを記述して、後は(特別な指定がない限り)左右と後ろにも同じ動き方をする」という決まりにしておくのである。 したがって、ナイトは「(1,2)-Leaper」または「(2,1)-Leaper」と表記される。
なお、普通はx座標の数字がより小さい方を採用して「(1,2)-Leaper」と表すようである。

改めて一般化しよう。
(m,n)-Leaperとは、その駒の現在位置を原点(0,0)とした時に、 (m,n), (n,m), (n,-m), (m,-n), (-m,-n), (-n,-m), (-n,m), (-m,n) の8マスに動けるような駒である。

0≦m,n≦3 の場合は特によく出てくるので、BFNでは基本原子として割り振られている。
以下の表は、(m,n)の値ごとにフェアリーチェス界での一般的な名称とBFNの基本原子を示したものである。

m=0 m=1 m=2 m=3
n=0 - Wazir (W) Dabbaba (D) Threeleaper (H)
n=1 Wazir (W) Ferz (F) Knight (N) Camel (L)
n=2 Dabbaba (D) Knight (N) Alfil (A) Zebra (J)
n=3 Threeleaper (H) Camel (L) Zebra (J) Tripper (G)

(m,n)の座標表記を基に、上で紹介した基本原子を改めておさらいしてみよう。

  • A:「アルフィル」。(2,2)-Leaper。
  • D:「ダッバーダ」。(0,2)-Leaper。
  • G:「トリッパー」。(3,3)-Leaper。
  • H:「スリーリーパー」。(0,3)-Leaper。
  • J:「シマウマ」。(2,3)-Leaper。
  • L:「ラクダ」。(1,3)-Leaper。
  • N:チェスのナイト。(1,2)-Leaper。

ライダーの項で紹介した「W(ワズィール)」と「F(フェルズ)」が上の表に含まれていることから分かるように、歩兵や王将のような「1マスだけ進む駒」は広義のリーパーとみなすことが出来る。
また、ルーク・ビショップ・クイーンなどのライダーもWとFの組み合わせで表現出来る。すなわち、任意のライダーは広義においてリーパーとみなすことが出来るのである。

ホッパー(Hoppers)

「進行方向に別の駒(ハードル)がある時のみその駒を飛び越えて、その先に着地する」駒を指す。着地先に敵の駒があれば取れる。 代表例として、中国のシャンチーの「炮」がある。 BFNにおいては、基本原子だけでホッパーを表すことは出来ない。必ず修飾子を用いる必要がある。

BFNの実例

チェスの「ポーン」

まず、チェスのポーンの動きをBFNで表すと次のようになる。
fcFfmW
これはどのようにして読み解けばいいのだろうか。
大前提として、BFNでは「修飾子+基本原子」の組をいくつも繋げていくことで1つの駒の動きを表現する。 つまり、fcFfmWという動きはfcFという動きとfmWという動きを組み合わせたものだ。

では、まずfcFとはどのような意味なのだろうか。 各記号を分解すると、fcは小文字アルファベットなので修飾子、そしてFは大文字なので基本原子であることがそれぞれ分かる。 fは「forward(前方に)」、cは「capture(取る)」、Fは「Ferz(フェルズ)」(=ナナメ方向に1マス進む)を表している。 つまりfcFとは「前方にフェルズの動きで駒を取る」という意味となる。 「前方にフェルズの動き」とは、すなわちナナメ前方に1マス進むということだ。 それに修飾子「c」が加わる訳だから、 まとめると「ナナメ前方1マスの範囲にある駒を取る(が、その方向には進まない)」ということを表現しているということになる。

次はfmWを分解してみよう。 fは「forward(前方に)」、mは「move(動く)」、Wは「Wazir(ワズィール)」(=タテヨコ方向に1マス進む)の意味である。 つまりfmWとは「前方にワズィールの動きで移動する」という意味だ。 「前方にワズィールの動き」とは、すなわち前方向に1マス直進するということ。 それに修飾子「m」が加わる訳だから、 まとめると「前方向に1マス直進する(が、その方向には駒を取らない)」ということを表現している。

すなわち、fcFfmWというBFNは「ナナメ前方1マスの範囲にある駒を取り、前方向に1マス直進する駒」ということだ。 これはまさしくチェスのポーンである。

禽将棋の「鵰(くまたか)」

変則将棋の1つに「禽将棋(とりしょうぎ)」というものがある。名前の通り、駒の名前が全て鳥の名前なのが特徴である。
その中に「鵰(くまたか)」という駒があり、その動きは次のようになる。
fBfsWbB2bR
次は、このBFN表記を読み解いてみよう。

上でも述べたが、大前提としてBFNでは「修飾子+基本原子」の組み合わせをいくつも繋げることで、1つの駒の動きを表現する。 すなわち、上のBFN表記はfB or fsW or bB2 or bRを略したものと解釈できる。これら4つの「修飾子+基本原子」の意味を個別に見てみよう。

  • fB:「f(前方に)」と「B(ビショップ)」の組。つまり「前方にビショップの動き」=「ナナメ前方向にどこまでも進む」。
  • fsW:「f(前方に)」と「s(横方向に)」と「W(ワズィール)」の組。つまり「前方と横方向にワズィールの動き」=「前方か左右方向に1マス進む」。
  • bB2:「b(後ろに)」と「B(ビショップ)」と「2(2マス)」の組。つまり「後方2マスにビショップの動き」=「ナナメ後方に最大2マスまで下がる」。
  • bR:「b(後ろに)」と「R(ルーク)」の組。つまり「後方にルークの動き」=「後方にどこまでも直進する」。

これを可視化すると、次のようになる。

+---+---+---+---+---+---+---+
| * |   |   |   |   |   | * |
+---+---+---+---+---+---+---+
|   | * |   |   |   | * |   |
+---+---+---+---+---+---+---+
|   |   | * | * | * |   |   |
+---+---+---+---+---+---+---+
|   |   | * |XXX| * |   |   |
+---+---+---+---+---+---+---+
|   |   | * | * | * |   |   |
+---+---+---+---+---+---+---+
|   | * |   | * |   | * |   |
+---+---+---+---+---+---+---+
|   |   |   | * |   |   |   |
+---+---+---+---+---+---+---+

記事冒頭で挙げたfhNfrlRKfsLloRgBKも、BFN表記として正しい文字列である。 ここではその解答は載せないが、ここまで述べてきたBFNの解説を見れば、いずれも完璧に読み解けるはずである。

さて、鋭い方なら既にお気付きかもしれないが、ここまで説明してきたBFNは、決してあらゆる駒の動きを表せる訳ではない。 また、別格に複雑な動きをする駒はBFNだと記述が過剰に長くなってしまい、読み解くのが大変になるという欠点もある。
BFNが広く使われるようになるにつれてこれらの欠点は徐々に無視できないものとなっていき、 そのうちに「既存のBFNでは不十分だから新しく記号を加えて拡張しよう」という動きが多く見られるようになった。
次回となるPart2では、そうしたBFNの拡張記法を見ていく。

参考文献

BFNの総合的な解説