Show page source of FrontPage #15566

== shogi-serverとは

 * [http://www.computer-shogi.org コンピュータ将棋協会 (CSA)]規定の[http://www.computer-shogi.org/protocol/tcp_ip_server_11.html TCP/IPプロトコル]を実装したネット対局用サーバ
 * shogi-server独自の拡張プロトコルを定め、対局観戦機能などを加えている
 * ライセンスはGPL
 * [http://wdoor.c.u-tokyo.ac.jp/shogi/ wdoor]にて実際に運用されている
   * [http://wdoor.c.u-tokyo.ac.jp/shogi/LATEST/players-floodgate.html Floodgate]モードでは、レーティングが表示されている

== サーバを使うには

 1. [http://www.ruby-lang.org Ruby] 1.8系統を用意する。または、[http://exerb.sourceforge.jp exerb]を使ってMicrosoft Windows用バイナリを作れば、Rubyをインストールしなくても使うことも可能なはず。
 1. shogi-serverをダウンロードする。
   * svn:shogi-server:/shogi-server/trunk/
   * {{{svn checkout http://svn.sourceforge.jp/svnroot/shogi-server/trunk/}}}
 1. 動かし方: `ruby ./shogi-server ''event_name'' ''port_number''`
   * ''event_name'' 棋譜整理用の文字列。特になければ test でも何でも。
   * ''port_number'' ポート番号を指定する。CSAでは4081が標準らしい。

== サーバと接続するには

標準プロトコル対応のクライアント、もしくは、拡張プロトコル対応のクライアントで接続する。

=== 人間が接続する場合

対局をするだけなら標準プロトコルでも可能。誰がログインしているか調べたり観戦などをするには、拡張プロトコル対応クライアントを用意する必要がある。(対応クライアント情報募集中)

 1. 標準プロトコル対応クライアント
   * [http://www.junichi-takada.jp/sficp/ SFICP] (Shogi Framework Implements CSA Protocol)
 1. 拡張プロトコル対応クライアント
   * [http://www.geocities.co.jp/SiliconValley-SanJose/8766/kshogi.html K-Shogi] Ver 1.7.00 以降
   * [http://gm.a-ark.net/%7Eshogi/clip/img/51.zip bulbul](.net)
   * [http://homepage1.nifty.com/Ike/usapyon/ うさぴょん] V1.2.4以降</li>
   * [http://tokyo.cool.ne.jp/progn/shogi-0.12.tgz 手動クライアント for Emacs] (version 0.12)[[BR]]
      emacs が使える方には一番お勧め ("M" で観戦が可能です)
   * [http://gm.a-ark.net/%7Eshogi/clip/img/22.zip 拡張モード用チャットクライアント](java)

=== 将棋プログラムを接続する場合

プログラムを標準プロトコルに対応する必要がある。拡張プロトコル対応にすると、連続対戦時に接続が安定する(keep aliveが可能)といった利点がある。

 1. 標準プロトコルでの接続: 
   * 適当なパスワードでログイン: そのようなクライアントが二つ揃うと対局開始。25分切れ負けモード。先手後手はランダムで決まる。
   * 対局条件指定用の[protocol.html#gamename]文法をパスワードにしてログイン: 
     * 対局開始条件:
       * 同じ条件で待っているクライアントがある(標準/拡張モード)
       * その条件に同意した拡張モードクライアントから挑戦がある
       * 同じパスワードで標準モードのクライアントがログインした
     * 持ち時間の調整や秒読みも可能。例: test-0-30 なら30秒将棋。test-2400-40 なら持ち時間40分秒読み40秒。
 1. 拡張プロトコルでの接続: [#extended 拡張プロトコルの詳細]を参照
   * RS232Cプロトコルでの接続: SFICP や K-Shogi などを、RS232Cと標準プロトコルを中継できるプログラムをブリッジに用いると、RS232Cプロトコルしか使わないプログラムも接続可能。

=== 接続可能なサーバ

[http://wdoor.c.u-tokyo.ac.jp/shogi/ wdoor:4081]

== [extended 拡張プロトコルの詳細/クライアントを開発する]

=== 拡張プロトコルの便利なところ

[protocol.html#extended-commands 拡張コマンド]が利用可能:

 * 誰がログインしているかが分かる
 * 相手や対局条件を選んで対局できる。
 * 観戦ができる
 * チャットが出来る

=== 拡張プロトコルの詳細

 * [protocol.html プロトコルの詳細]
 * 開発の際の議論など (@2ch)
   * [http://usapyon.dip.jp/shogi/computer/log/o3.html おまいら最強の将棋プログラムしてみろよ Part3]
   * [http://usapyon.dip.jp/shogi/computer/log/o4.html おまいら最強の将棋プログラムしてみろよ Part4]

=== その他: 将棋プログラム作成に有用な情報など

 * [http://gm.a-ark.net/~shogi/clip/img/28.zip 将棋駒のTrueTypeFontとJava サンプルプログラム] (Part3の884さん作) [http://gm.a-ark.net/~shogi/clip/img/29.png 画面写真]
 * [http://gm.a-ark.net/~shogi/clip/img/11.zip 将棋駒画像] (Part3の884さん作)

----

project:shogi-server