トップページ


基本技#12 「逆さ文字を表示する」

 

1. v表示が気に入らない方へ

コンピュータで「文字」は不遇の存在です。
特に漢字などのように1文字で2バイト以上が必要な文字は、「英数字」や「画像」に比べかなりぞんざいな扱いを受けています。
コンピュータ自体がアルファベット文化圏で発展したものなので、仕方がないと言えば仕方がないのですが、コンピュータを使って何かをしようとすると、必ず と言っていいほど「文字」で障害にぶつかります。

例えば将棋では文字を180°回転させることが必要になります。
このサイトで配布している詰 将棋用XMLビューアでは、文字を画像に直してから回転させることで、それを実現しています。
ところが、回転させたいのが漢字ではなく英数字や画像なら、元々ActionScriptに備わった機能だけで何の苦もなく同じことができるのです。
何という待遇の差でしょう!

コンピュータ上で将棋の盤面をどう表すかは昔からプログラマの頭を悩ます問題でした。
今では「柿木将棋」の作者である柿木義一氏の考案したkif形式が定着し、後手の駒には左に v の文字を付けるという方式が一般的に利用されています。
fmの盤面表記もkif形式に準拠しており、慣れた人ならv付き駒を頭の中で受方駒に変換することができるでしょう。
でも、

「やっ ぱり逆さの文字がいい!」

という人も多いはずです。
そういう方々のために(少し手間は掛かりますが)fmで逆さの文字を表示させる方法について説明するのが本稿の目的です。

 

2. 外字の登録

逆さ文字の表示には難しいテクニックは必要 ありません。

  1. 逆さ文字を外字に登録する
  2. 環境ファイル(FMENV)で登録した外字を表示するよう設定する
とまあ、これだけです。
外字登録にはWindowsに附属し ている「外字エディタ」を使います。
せっかくですから、ここで使い方を説 明しましょう。

外字エディタを用いた外字の登録方法 (WindowsXPを例に説明)

  1. 外字エディタを起動する
    スタートメニューから〔すべてのプログラム〕→〔アクセサリ〕→〔外字エディタ〕を選択する。
     
  2. 外字を登録するコードの選択
    表示されるダイアログ画面から登録場所を選ぶ。(通常はF040以降が空いている)
    起動された外字エディタ
     
  3. 登録内容の確認
    コードを選択すると登録された外字を表示する画面が表示される。
    未登録の場所だと、以下のように何もなく真っ白の画面が表示される。
    最初の画面
     
  4. 既存のコードの参照
    外字を一から作るのは面倒なので、元ネタをコピーする。
    ツールバーから〔編集〕→〔文字のコピー〕を選んで次の画面を表示させる。
    参照する
     
  5. 駒文字選択
    「形」の欄にカーソルを合わせ、コピーしたい文字を入力する。
    すると、画面にその文字のコードが現れるので、その文字で間違いないか確認してOKのボタンを押す。
    駒文字選択

     
  6. コピーされた文字の確認
    自分の選んだ文字が編集画面にコピーされたことを確認する。
    (自分の好みの書体に変えたい場合は、前の画面に戻り「フォント名」のボタンで書体を選び直す。)
    コピー結果
     
  7. 文字の回転
    メニューバーから〔ツール〕→〔反転と回転〕を選ぶと次の画面が表示されるので、180°を選んでOKを押す。
    回転の指定
     
  8. 逆さ文字の確認
    文字が逆さまになったのを確認する。
    逆さ文字
     
  9. 保存
    ツールバーから〔編集〕→〔同じコードで保存〕を行うと次の画面が表示され、登録した外字を確認できる。
    保存
     
  10. 繰り返し
    F041以降の空いた場所に、同様の作業を繰り返して、必要な逆さ文字を登録していく。
外字の登録が完了したら、次はfmの 方の設定です。

 

 

3. FMENVの変更

登録した外字を有効にするには、fmの環境ファイルFMENVを使います。
FMENVをメモ帳か何かで開くと、中にこんな文があるはずです。

# 受方の駒の表示文字列(逆さ文字)
#YONDER_FU = " \xf0\x40"
#YONDER_KY = " \xf0\x41"
#YONDER_KE = " \xf0\x42"
#YONDER_GI = " \xf0\x43"
#YONDER_KI = " \xf0\x44"
#YONDER_KA = " \xf0\x45"
#YONDER_HI = " \xf0\x46"
#YONDER_GY = " \xf0\x47"
#YONDER_TO = " \xf0\x48"
#YONDER_NY = " \xf0\x49"
#YONDER_NK = " \xf0\x4a"
#YONDER_NG = " \xf0\x4b"
#YONDER_UM = " \xf0\x4d"
#YONDER_RY = " \xf0\x4e"
#YONDER_HO = " \xf0\x4f"
#YONDER_QU = " \xf0\x50"
#YONDER_KN = " \xf0\x51"
#YONDER_CC = " \xf0\x52"
#YONDER_CM = " \xf0\x53"
#YONDER_ZB = " \xf0\x54"
#YONDER_KR = " \xf0\x55"
#YONDER_PH = " \xf0\x56"
#YONDER_GR = " \xf0\x57"


外字を有効にする場合は、コメントを意味する#を外して、登録した外字のコードを指定すればOKです。
例えば最初の行のYONDER_FUは受方の歩。\xf0\x40はF040に登録した外字を示します。(\xは16進数であることを示す記号なので、除外して考えてください。)
もし、F040からF04Eまで「歩香桂銀金角飛玉と杏圭全馬龍」の順に逆さ文字が登録してあれば、次のようにコメントを外すだけで登録した外字が使用できます。

# 受方の駒の表示文字列(逆さ文字)
YONDER_FU = " \xf0\x40"
YONDER_KY = " \xf0\x41"
YONDER_KE = " \xf0\x42"
YONDER_GI = " \xf0\x43"
YONDER_KI = " \xf0\x44"
YONDER_KA = " \xf0\x45"
YONDER_HI = " \xf0\x46"
YONDER_GY = " \xf0\x47"
YONDER_TO = " \xf0\x48"
YONDER_NY = " \xf0\x49"
YONDER_NK = " \xf0\x4a"
YONDER_NG = " \xf0\x4b"
YONDER_UM = " \xf0\x4d"
YONDER_RY = " \xf0\x4e"
#YONDER_HO = " \xf0\x4f"
#YONDER_QU = " \xf0\x50"
#YONDER_KN = " \xf0\x51"
#YONDER_CC = " \xf0\x52"
#YONDER_CM = " \xf0\x53"
#YONDER_ZB = " \xf0\x54"
#YONDER_KR = " \xf0\x55"
#YONDER_PH = " \xf0\x56"
#YONDER_GR = " \xf0\x57"

YONDER_HO以降はフェアリー駒用です。
それぞれ、宝(成玉)、Q(Queen)、騎(Knight)、獅(獅子)、駱(Camel)、縞(Zebra)、麒(麒麟)、鳳(鳳凰)、き(Giraffe)に対応しています。

FMENVの設定が終わったら実際にfmを起動して、逆さ文字が表示されていることを確認してください。
所詮はビットマップフォントなのであまり見栄えは良くありませんが、確かに逆さ文字が表示されているはずです。
逆さ文字が表示される 

 

4. 補足

当然の事ながら外字は登録したそのマシンでしか使えません。
外字を登録していない環境で使う場合は、FMENVの表示文字設定は元に戻しておきましょう。
また、マシンによって外字の登録場所が異なることもあるでしょう。
この場合も、外字の登録場所に従ってFMENVの修正が必要です。

なお、FMENVはfmがあるのと同じフォルダに入れておきます。
別のフォルダに入れて、OSの環境変数でそれを参照するという凝ったこともできるのですが、上級者以外にはあまりお勧めできません。


 

 

[*]