更新日: 2011 年 11 月 15 日
ごーじゃすリバーシの説明
説明
ごーじゃすリバーシ の添付ドキュメントです。
GREVERSI.DOC
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ごーじゃすリバーシ GREVERSI.X v0.16 (2000.07.05) by M.Kamada ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 見た目がちょっとごーじゃすなリバーシです。見た目だけです。機能はちーぷ です。プログラムはてきとうです。このドキュメントはおおざっぱです。 ●動作環境 X680x0 全機種(16MHz 以上推奨) 要マウス Human68k v3.0x フリーエリア 850KB ●インストール方法 インストール先のハードディスクなどに必要な空き容量は、約 12MB です。 適当なディレクトリにファイル GREVERSI.X をコピーし、同じディレクトリに GREVDATA というサブディレクトリを掘ってこの中のファイルもすべてコピーし ます。 サブディレクトリ GREVDATA の中の拡張子が .DAT のファイルはゲーム中に頻 繁にアクセスされるので、なるべくクラスタが連続するように工夫して下さい。 実行するときは、GREVERSI.X をフルパスで指定するか、あらかじめパスを通 しておくなどして起動します。GREVERSI.X は、自分と同じディレクトリにある GREVDATA というサブディレクトリにあるデータファイルを読み込みます。 ●メインメモリが 1MB のとき メインメモリが 1MB の環境では、余計なデバイスドライバを一切組み込まな くても、普通に起動しようとするとメモリが足りなくて起動できない場合があり ます。その場合は、次のような手順で動かすことができます。 まず、前述の手順でハードディスクなど(Human68k v3.0x が標準で認識でき るデバイス)にインストールして下さい。そして、フロッピーディスクに HUMAN.SYS と下記のような 1 行だけの CONFIG.SYS を入れたシステムディスク を作ります。ここで ?:\〜\ の部分は、フロッピーディスクから起動したときの ハードディスクの GREVERSI.X のパスです。 フロッピーディスクに入れる CONFIG.SYS ファイルの内容 ┌──────────────────────────── │SHELL = ?:\〜\GREVERSI.X ^^^^^^ ここは各自の環境に合わせる OPT.1 キーを押しながらリセットボタンを押してこのフロッピーディスクから 起動することで、メインメモリが 1MB の環境でも動かすことができます。 ●コマンドラインのパラメータ レベルと先手・後手の指定はコマンドラインでもできます。 >greversi [スイッチ] [対戦用の局面パラメータ] レベル 先読み 必勝読み切り 完全読み切り -l1 1 2 手 残り 8 マス 残り 6 マス -l2 2 3 手 残り 10 マス 残り 8 マス -l3 3 4 手 残り 12 マス 残り 10 マス -l4 4 5 手 残り 14 マス 残り 12 マス -l5 5 6 手 残り 16 マス 残り 14 マス モード 先手 後手 -m0 0 人間 人間 -m1 1 コンピュータ 人間 -m2 2 人間 コンピュータ -m3 3 コンピュータ コンピュータ -x"ファイル名 レベル設定オプション" com の手番とき、外部思考ルーチンを呼び出します レベル設定オプションの直後にレベル(1〜5)が入ります コマンドラインで何も指定しなければ、レベル 1、モード 2(先手:人間、後 手:コンピュータ)で起動します。 レベル 5 は 060turbo でも待たされることがあります。 人間vs人間およびコンピュータvsコンピュータの指定はメニューではできない ので、コマンドラインで指定する必要があります。 ●操作方法 マウスを使います。 ゲーム中は、人間の手番のときに、石を置きたいマスを左ボタンでクリックし ます。 人間の手番のときにマウスの右ボタンまたは ESC キーを押すとメニューが出 てきます。また、コンピュータの手番になったときにマウスの右ボタンが押され ていた場合にもメニューが出てきます。 ●メニュー メニューはマウスの左ボタンで選択します。 ・対局 対局前ならばそのまま対局を開始します。対局中のときは現在の対局 を放棄して新しい対局を開始します。 ・先手 後手 人間が先手か後手かを選びます。他方がコンピュータになります。 ・レベル 12345 コンピュータの思考のレベルを選択します。レベルが大きくなるほど 強く、思考に時間がかかるようになります。 レベル 先読み 必勝読み切り 完全読み切り 1 2 手 残り 8 マス 残り 6 マス 2 3 手 残り 10 マス 残り 8 マス 3 4 手 残り 12 マス 残り 10 マス 4 5 手 残り 14 マス 残り 12 マス 5 6 手 残り 16 マス 残り 14 マス ・終了 プログラムを終了します。 メニューが表示されているときにスペースキーまたはリターンキーを押すと、 対局が選択されたものとみなされます。 メニューが表示されているときにマウスの右ボタンまたは ESC キーを押すと、 メニューが消えてゲームを継続することができます。 ●キー操作 ・SHIFT キー SHIFT キーを押している間は垂直帰線期間を待たなくなります。 速い機種だと画面表示もちょっぱやになります。 ・ESC キー アニメーション中に ESC キーを押すとポーズ状態になり、画面表示 のために垂直帰線期間を待つところでキー入力待ちになります。 ポーズ中に TAB キーを押すと、次に垂直帰線期間を待つところまで 進みます。つまり、画面表示をコマ送りできます。 ポーズ中に再び ESC キーを押すとポーズが解除されます。 ・BREAK キー プログラムを終了します。 BREAK キーが効かないときは、一度 SHIFT+BREAK を押してからもう 一度 BREAK キーを押してみて下さい。 なお、コンピュータの思考中は BREAK キーは効きません。 ●リバーシのルール 省略。 ●パスと終局 パスと終局の判定は自動で行われます。 パスのときは自動的に次に進みます。 終局のときは、マウスの左ボタンをクリックすると次の対局に進んでメニュー が出てきます。右ボタンまたは ESC キーを押すとプログラムが終了します。 ●思考エンジンについて greversi.x の思考エンジンは電脳倶楽部 135 号の読み物横町に入っている kreversi.x v0.19 と同じです。詳しくは該当する記事を参照して下さい。 スイッチ -x を指定した場合は、外部の思考ルーチンを呼び出します。 ●グラフィックについて 石のパターンデータは、レイトレーシングソフトの XL/Image で描きました。 石を垂直帰線期間毎に 5 度ずつ回転させるために、1 マスあたり 360÷5=72 枚のパターンデータが必要で、これが 64 マスあるので、合計 72×64=4608 枚 のパターンデータを使用しています。枚数が多い上に antialias=3、 map-antialias=on という贅沢な設定でレイトレースしていますが、反射がなく て一枚あたりの面積も狭いので、060turbo で一晩くらいで全部描画できます。 ●画面の使用状況 画面モードは 512×512 ドット、65536 色モードです。ピクセル比は 4:3 を 想定しています。 盤面と石はすべてグラフィックです。 黒と白の文字はバックグラウンドで、石のカウンタの数字と手番を表す赤い線 はスプライトです。 メニューの地とメニューの中の赤い線はテキストで、メニューの中の文字はス プライトです。 マウスカーソルはスプライトです。 なお、GVRAM に対する RAMDISK チェック(使用の可否の判定)は行っていま せん。 ● make に関する注意 オールアセンブラで has060.x の拡張文法を使っています。 ●更新履歴 v0.01 (1999.12.21) XL/Image とバッチ処理で盤と石のグラフィックを生成。 (1999.12.24) kreversi.x を改造してグラフィック表示にした。 v0.02 (1999.12.25) 石がひっくり返るアニメーションの順序を放射状に変更。 v0.03 (1999.12.25) 石がじわじわ出てくる。 v0.04 (1999.12.25) 画面と盤の初期化処理を変更。 v0.05 (1999.12.25) 終局の後、先手と後手を入れ替える。 v0.06 (1999.12.25) ESC キーと TAB キーでコマ送り。 v0.07 (2000.01.04) 石の数のカウンタを表示する。 v0.08 (2000.01.05) ボードのマップを圧縮。 v0.09 (2000.01.23) ソースを分割。 v0.10 (2000.02.01) ゲームオーバーの処理を追加。 v0.11 (2000.02.01) メニューを作ってゲームとして完成。 v0.12 (2000.02.01) アニメーションエンジンにバグがあったので修正。 v0.13 (2000.02.02) 引き分けの表示がおかしかったので修正。 v0.14 (2000.02.02) データディレクトリ名を DATA から GREVDATA に変更。 (2000.02.03) 全滅の石差を 64 石に修正。 (2000.02.03) メニューでスペースキーとリターンキーに対応。 (2000.02.03) フォントをゴシックに変更。 (2000.02.03) 数字フォントの表示位置を調整。 (2000.02.03) ROM が古いと表示が乱れるバグを修正。 (2000.02.03) メインメモリが 1MB の元祖でも動くことを確認。 (2000.02.04) 引き分けの表示がまだおかしかったので修正。 v0.15 (2000.04.11) 思考ルーチンの外部呼び出し機能を追加 v0.16 (2000.07.05) 外部呼び出し時のレベル設定を追加 ●今後の予定は未定 音がない。 棋譜(って言うのか?)のセーブとロード(保存と再生)の機能が欲しい。 テイクバックとリプレイが欲しい。 クロックが欲しい。 (EOF)