説明
xshisen は X11
で動作するパズルゲームです。ゲームの内容は有名な「上海」に
ちょっと似ていて、144
ある牌を順に取り除いていき、最終的にすべての
牌を取り除くことが目的です。
xshisen
の動作にはマウスが必要です。キーボードのみによる操作はできません。
ルール
ゲームは、すべての牌を画面上から取り除くことで終了します。牌は
2 個 1
組で、以下の条件を両方満たした場合に取り除くことができます。
- (1)
- 2
つの牌が同じ種類のものであること
- (2)
- 2
つの牌が牌のないところを
2
曲がり以内で結べること。つまり、2
つ
の牌の中心から中心までを牌のないところを通って水平または垂直の連
続した線分 3
本以下で結べること
- 一見、難しそうなルールですが、説明するのが難しいだけで、実際は簡単
- です。「自動デモ」モードなどを活用してルールを理解してください。
ハイスコア
ハイスコアは環境変数
XSHISENLIB
によって指定されたディレクトリの
xshisen-scores
というファイルに記録されます。環境変数の設定がない場合は
X のリソー
スによる設定が有効になります。「やり直し」「一手戻る」「サーチ」を
1
度でも利用したゲームはハイスコアの記録対象になりません。
オプション
以下のようなコマンドラインオプションがあります。
- standard Xt
options
- xshisen は -display や -iconic
のような標準的な Toolkit
オプショ
ンを受け付けます。
- -demo
- 「自動デモ」モードで起動します。このモードではゲームはできませんが、
コンピュータによって、ゲームは自動的に進行します。はじめにルールを
理解するために有効です。
- -score
- ハイスコアダイアログのみを表示して終了します。現在のハイスコアを確
認したい場合に便利です。
- -mag number
- number
で指定された倍率のウインドウで表示します。標準のウイ
ンドウは 640x400
です。number
は小数を指定できますが、許され
る範囲は 0.5
から画面最大化の範囲までです。
- -fn
fontlistメニューバー、
- タイム表示などに fontlist
で指定されたフォントを使います。
- -large
- 麻雀牌を2組使って、大きな画面でゲームをします。起動後にメニューバー
から切り替えることもできます。通常ゲームとは独立にハイスコアが記録さ
れます。
- -huge
- 麻雀牌を4組使って、特大画面でゲームをします。起動後にメニューバー
から切り替えることもできます。通常ゲームとは独立にハイスコアが記録さ
れます。
- -trial
- 「クリック腕試し」モードで起動します。パズルの思考時間を排除し、純
粋にマウスを操作するスピードを競うことができます。
- -gravity
- 重力を ON
にします。中段の牌が取り除かれると、それより上部にある牌
は下に詰めるように落下します。
リソース
以下のようなリソースが有効です。
- XShisen*fitPixmap
- ウインドウの初期サイズを
Pixmap
ファイルに合わせるかどうかを設定しま
す。 True
の場合は、起動時のウインドウサイズは牌データのサイズにより、自動的
に決定されます。
False の場合には、 width
および、 height
リソースが使われ、Pixmap
データは自動的にリサイズされます。
- XShisen*width
- ウインドウの横幅を指定します。
fitPixmap リソースが True
に設定されている場合には効力がありません。
デフォルトは 640
です。
- XShisen*height
- ウインドウの高さを指定します。
fitPixmap リソースが True
に設定されている場合には効力がありません。
デフォルトは 400
です。
- XShisen*scoreFile
- スコアファイル名を指定します。ディレクトリを含まないファイル名のみ
を記述する必要があります。デフォルトは
"xshisen-scores" です。
- XShisen*connectLineTime
- 牌を取り除く操作をしてから、実際に画面上から牌が消えるまでの時間を
ミリ秒で設定します。慣れないうちは十分な時間を取る方が良いでしょう。
慣れてきたら、この設定を短くすることで操作速度を向上させることがで
きるかもしれません。デフォルトは
1000 ミリ秒です。
- XShisen*connectLineColor
- 2
個の牌を取り除くときに結ぶ線の色を指定します。デフォルトは
"blue" です。
- XShisen*connectLineWidth
- 2
個の牌を取り除くときに結ぶ線の太さをピクセル数で指定します。
デフォルトは 6
です。
- XShisen*background
- 背景の色を指定します。デフォルトは
#004000 です。
- XShisen*libraryDirectory
- 牌のピクスマップデータ、及びハイスコアを記録するディレクトリを指定
します。環境変数
XSHISENLIB
の設定があればそちらの方が優先されます。
- XShisen*drawing.translations
- マウスのボタンバインディングを変更します。デフォルトは
<Btn1Down>: #replace PickupPiece() \n <Btn3Down>: CancelPiece()
です。
メニューバーとキー操作
- スタート (Control + D)
- 新しいゲームを開始します。牌は乱数によって配置されます。
- やり直し (Control + R)
- 一度「スタート」を選択した後に選択できます。その前のゲームと同じ牌
配置が現れます。そのゲームではハイスコアの記録対象外となります。
- ポーズ (Control + P)
- ゲームを中断します。時間のカウントが止まりますが、牌も見えなくなり
ます。再びポーズを選択するとゲームを再開することができます。
- 終了
- 「四川省」を終了します。
- サーチ (F1)
- 現在取除くことのできる牌を表示します。使用回数に制限はありません
が、一度でも使用するとそのゲームではハイスコアの記録対象外となりま
す。
- 一手戻る (F5)
- 前の操作で取除いた牌を復活させます。一度でも使用すると、そのゲーム
ではハイスコアの記録対象外となります。
マウス操作
以下のマウス操作が有効です。マウスのボタン設定は
XShisen*drawing.translations
リソースによって変更することができます。
- ボタン 1
- 取り除く牌を指定するために使います。「サーチ」の後にボタン
1 をク
リックするとサーチされたペアが取り除かれます。一度クリックした牌を
再びボタン 1
でクリックすることでキャンセルすることもできます。
- ボタン 3
- キャンセルに使います。1
つの牌がボタン 1
によって選択された状態で
ボタン 3
をクリックすると、選択されている牌はキャンセルされます。
また、「サーチ」の後にボタン
3
をクリックすることで、サーチ結果を
キャンセルすることができます。
四川省 for X11: 小林
正興
牌デザイン: 秋山
隆之
xshisen
の著作権は、作者の小林正興<masaoki@techfirm.co.jp>に帰属します。
牌画#1の著作権は秋山隆之<taco3@ybb.ne.jp>に帰属します。
牌画#2の著作権はMario
Weilguni<mweilguni@sime.com>に帰属します。
詳細はLICENSEファイルを参照してください。