INDEX

最近の更新

2009-03-11
2009-03-10
2009-03-07
2009-02-23
2009-02-19
2009-02-14

Latest File Release

This Project Has Not Released Any Files

Wikiガイド

サイドバー

UMP詳細

基本

  • TCPを介した通信
  • 使用コードはASCIIのみ。大文字小文字は区別する。コマンドは小文字
  • プレイヤーの名前など、ASCIIで入らない場合はUTF-8をURIエンコードしたものを使う
  • やりとりは、基本的にサーバからクライアントへ送り、一部コマンド(hello/sutehai?/naku?/tenpai?)はクライアントから返答を返す
  • クライアントから任意のタイミングでサーバにコマンドは送らない

詳細

  • 牌の表記
    • 数字1文字+アルファベット1文字で一つの牌を表す。
    • アルファベットはm(マンズ)、p(ピンズ)、s(ソウズ)、z(字牌)
    • 字牌は東南西北白発中の順に1z〜7z
    • アルファベット大文字はドラ(赤牌)
  • 手牌の表記
    • 基本的には理牌(ソート)して表記。順番はm<p<s<z、1<9
    • 面前部分は普通に牌を並べ、晒した牌は<>で囲む。暗カンは()
    • スベースは空けない
      • 4m4m6m7m5p6p7p2s3s4s5s6s7s
      • 2m2m5z5z5z7z7z<2p3p4p><6z6z6z>
  • プレイヤーの表記
    • 起家から順に、A、B、C...と表記する
  • コマンド形式
    • <センテンスID> <コマンド> [<引数> ...] <CR+LF>
    • サーバから送られたコマンドに返答するときには、同じセンテンスIDを送る
    • セパレータは空白1文字

コマンド一覧

サーバ クライアント 説明
hello [<オプション> ...] hello [<オプション> ...] 接続確認。オプションについては後述
error <メッセージ> エラーメッセージを送る(認証失敗等)
gamestart <席> <名前A> ... ゲーム(半荘)開始
gameend <点数A> ... ゲーム終了
kyokustart <場風> <親> <本場> <供託> 一局が始まるときに送る
kyokuend 一局終了
ready? ok クライアントの返答を待つ
point <プレイヤー> (=|+|-)<点数> プレイヤーの点数を通知する。点数の前には必ず=|+|-が付き、=は点数の直指定、+-は増減を意味する
dice <サイコロの目1> <サイコロの目2> サイコロの出目を送る
haipai <プレイヤー> [<配牌>] 配牌を配る
open <プレイヤー> <晒した牌> [<鳴いた牌>] 手牌を公開する(和了、流局時のテンパイ宣言、オープンリーチ、チー、ポン、カン)
dora <牌> ドラ表示牌を送る
tsumo <プレイヤー> <残り枚数> [<牌>] 自摸る。他家には牌は送らない
sutehai? 捨牌を尋ねる
sutehai <牌> [tsumogiri] 捨てる
ankan <牌> 暗カン
kakan <牌> 加カン
richi <牌> [tsumogiri] リーチをかけて牌を捨てる
openrichi <牌> [<手牌>] [tsumogiri] オープンリーチをかけて牌をすてる
tsumo ツモあがり
sutehai <プレイヤー> <牌> [tsumogiri] 捨牌
naku? <牌> [ron] [kan] [pon] [chi] 牌を鳴くか尋ねる。クライアントが可能なコマンドも送る
no 鳴かない
ron ロン
kan 明カン
pon <牌1> <牌2> ポン
chi <牌1> <牌2> チー
say <プレイヤー> chi | pon | kan | ron | tsumo | richi | tenpai | noten 発声
agari <プレイヤー> <符> <役1> <ハン数1> ... あがり
ryukyoku 流局
tenpai? テンパイを宣言するか尋ねる
yes 宣言する
no 宣言しない

helloコマンドのオプション

重要度 オプション名 説明
ump=<バージョン> バージョン
name=<名前> 名前。UTF-8をURIエンコードしたもの
user=<ユーザ名> 認証用ユーザ名
password=<パスワード> 認証用パスワード
  • ◎=必須、○=推奨、△=オプショナル
  • オプション名が'_"(アンダーバー)で始まるものは、各サーバ/クライアントの実装で自由に使って良い。 ただし、指定されなかった場合でもできるだけ動作するようにすること

補足

  • say richiはsutehaiコマンドの直後に送られる(sutehai->say richiの順)
  • 不正なコマンドを返したとき(持っていないのにponとか)の挙動は、サーバの実装次第(無視、あるいは再度尋ねる等)
  • なので、状況についてはサーバから送られてきたものが絶対。クライアントがponやronを送っても、サーバが認めない限り無効
  • チョンボについて

課題

  • 途中流局