|
||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--jp.gr.java_conf.ishihata.mj_ai.MIPIface
この抽象クラスは、AIが現在のゲームの状況を確認するためのインタフェースを提供します。 実際には、AIはこのクラスを継承したクラスのオブジェクトを取得します。AIはそのオブジェクトに対して、 このクラスで宣言されているメソッドを呼び出すことで各種の情報を得ることができます。
フィールドの概要 | |
static int |
MJRL_77MANGAN
30符4飜を満貫にするかどうかの設定を表します。 |
static int |
MJRL_AKA5
赤五を表します。 |
static int |
MJRL_AKA5S
赤五牌の数を表します。 |
static int |
MJRL_BUTTOBI
ぶっとびを表します。 |
static int |
MJRL_DBLRONCHONBO
ダブロン/トリプルロン時に正当な和がりがあればチョンボが無効になるかどうかを表します。 |
static int |
MJRL_DORAPLUS
ドラが表示牌かその次の牌なのかを表します。 |
static int |
MJRL_FURITENREACH
フリテンリーチの有無を表します |
static int |
MJRL_KANINREACH
リーチ時の暗カンの可否を表します。 |
static int |
MJRL_KANSAKI
完全先付けを表します。 |
static int |
MJRL_KARATEN
カラテンの可否を表します。 |
static int |
MJRL_KUINAOSHI
食い直し(食い換え)を表します。 |
static int |
MJRL_KUITAN
食い断を表します。 |
static int |
MJRL_MOCHITEN
ゲーム開始時の点数を表します。 |
static int |
MJRL_NANNYU
南入の有無を表します。 |
static int |
MJRL_NANNYU_SCORE
南入するためのトップの点数を表します。 |
static int |
MJRL_NOTENOYANAGARE
ノーテン親流れの設定を表します。 |
static int |
MJRL_PAO
包を表します。 |
static int |
MJRL_PINZUMO
ピンヅモの可否を表します。 |
static int |
MJRL_RON
頭ハネ、ダブロンまで、トリプルありの設定を表します。 |
static int |
MJRL_RYANSHIBA
二飜しばりを表します。 |
static int |
MJRL_SCORE0REACH
1000点の持ち点がなくてもリーチできるかどうかを表します。 |
static int |
MJRL_SHANYU
西入の有無を表します。 |
static int |
MJRL_SHANYU_SCORE
西入するためのトップの点数を表します。 |
static int |
MJRL_TOPOYAAGARIEND
オーラストップ親和がり終了を表します。 |
static int |
MJRL_URADORA
裏ドラの有無を表します。 |
static int |
MJRL_WAREME
割れ目を表します。 |
static int |
MJYK_8RENCHAN
八連荘 |
static int |
MJYK_CHANKAN
槍槓 |
static int |
MJYK_CHANTA
全帯公 |
static int |
MJYK_CHIHO
地和 |
static int |
MJYK_CHINITSU
清一色 |
static int |
MJYK_CHINROUTOU
清老頭 |
static int |
MJYK_CHITOI
七対子 |
static int |
MJYK_CHUREN
九連宝燈 |
static int |
MJYK_DAISANGEN
大三元 |
static int |
MJYK_DAISHARIN
大車輪 |
static int |
MJYK_DAISUSHI
大四喜 |
static int |
MJYK_DORA
ドラ |
static int |
MJYK_DOUBLEREACH
ダブルリーチ |
static int |
MJYK_FANPAI
飜牌 |
static int |
MJYK_HAITEI
海底ツモ |
static int |
MJYK_HONITSU
混一色 |
static int |
MJYK_HONROUTOU
混老頭 |
static int |
MJYK_HOTEI
河底振り込み |
static int |
MJYK_IPEKO
一盃口 |
static int |
MJYK_IPPATSU
一発 |
static int |
MJYK_ISSHOKUSANJUN
一色三順 |
static int |
MJYK_ISSHOKUYONJUN
一色四順 |
static int |
MJYK_ITTSU
一気通貫 |
static int |
MJYK_JUNCHAN
純全帯公 |
static int |
MJYK_KOKUSHI
国士無双 |
static int |
MJYK_NAGASHIMANGAN
流し満貫 |
static int |
MJYK_PINFU
平和 |
static int |
MJYK_REACH
リーチ |
static int |
MJYK_RENHO
人和 |
static int |
MJYK_RINSHAN
嶺上開花 |
static int |
MJYK_RYANPEKO
二盃口 |
static int |
MJYK_RYUISO
緑一色 |
static int |
MJYK_SANANKOU
三暗刻 |
static int |
MJYK_SANKANTSU
三槓子 |
static int |
MJYK_SANRENKOU
三連刻 |
static int |
MJYK_SANSHOKUDOUJUN
三色同順 |
static int |
MJYK_SANSHOKUDOUKOU
三色同刻 |
static int |
MJYK_SHOSUSHI
小四喜 |
static int |
MJYK_SHOUSANGEN
小三元 |
static int |
MJYK_SISANPUTO
十三不塔 |
static int |
MJYK_SUANKOU
四暗刻 |
static int |
MJYK_SUKANTSU
四槓子 |
static int |
MJYK_SURENKOU
四連刻 |
static int |
MJYK_TANYAO
断公九 |
static int |
MJYK_TENHO
天和 |
static int |
MJYK_TOITOI
対々和 |
static int |
MJYK_TSUISO
字一色 |
static int |
MJYK_TSUMO
門前ツモ |
コンストラクタの概要 | |
MIPIface()
|
メソッドの概要 | |
abstract int |
getAgariScore()
現在の状況であがった場合の点数を取得します。 |
int |
getAgariScore(MJITehaiReader t,
int hai)
特定の手牌に対するあがり点を取得します。 |
abstract int |
getAgariScore(MJITehaiReader t,
MJIHaiReader hai)
特定の手牌に対するあがり点を取得します。 |
int[] |
getAnkanableHai()
現在暗カン、加カンできる牌を取得します。 |
abstract int[] |
getAnkanableHai(boolean chonbo_check)
現在暗カン、加カンできる牌を取得します。 |
abstract int |
getCha()
現在の自分の家を取得します。 |
abstract int[] |
getDora()
ドラを取得します。 |
abstract int |
getHaiRemain()
残りのツモ牌の数を取得します。 |
abstract int |
getHonba()
現在何本場かを取得します。 |
abstract java.lang.Object |
getInterface(java.lang.String name)
特定のインタフェースを要求します。 |
abstract MJIKawahaiReader[] |
getKawa(int player_no)
河牌を取得します。 |
abstract int |
getKyoku()
現在の局を取得します。 |
boolean |
getMachi(boolean[] mc)
現在の待ち牌(当たり牌)を取得します。 |
abstract boolean |
getMachi(MJITehaiReader t,
boolean[] mc)
現在の待ち牌(当たり牌)を取得します。 |
abstract int |
getReachBou()
現在場に出ているリーチ棒の数を取得します。 |
abstract int |
getRule(int rule)
現在のルール設定を取得します。 |
abstract int |
getScore(int player_no)
現在の持ち点を取得します。 |
MJITehaiReader |
getTehai()
現在の手牌を取得します。 |
abstract MJITehaiReader |
getTehai(int player_no)
現在の手牌を取得します。 |
abstract int |
getVisibleHais(int hai)
特定の牌が現在何枚場に出ているかを取得します。 |
abstract int |
getWareme()
現在の割れ目を取得します。 |
abstract int |
getYakuFan(int yaku,
boolean naki)
特定の役の飜数を取得します。 |
abstract boolean |
isHaiAnpai(int player_no,
int hai)
特定の牌が特定のプレイヤーに対する安牌かどうかを調べます。 |
abstract boolean |
isHaiThrowable(int hai)
特定の牌を捨てることができるかどうかを確認します。 |
abstract boolean |
isKKHaiable()
現在九種九牌で流すことができるかどうかを取得します。 |
abstract boolean |
isLastTsumogiri()
最後の捨て牌がツモ切りかどうかを取得します。 |
abstract boolean |
isPlayerReached(int player_no)
特定のプレイヤーがリーチをかけているかどうかを調べます。 |
abstract boolean |
isSSPutoable()
現在十三不塔であがれるかどうかを取得します。 |
abstract boolean |
setAutoMessage(boolean f)
自動的に表示されるメッセージを抑制することを要求します。 |
abstract void |
showMessage(java.lang.String str)
メッセージの表示を要求します。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
public static final int MJRL_KUITAN
public static final int MJRL_KANSAKI
public static final int MJRL_PAO
public static final int MJRL_RON
public static final int MJRL_MOCHITEN
public static final int MJRL_BUTTOBI
public static final int MJRL_WAREME
public static final int MJRL_AKA5
public static final int MJRL_SHANYU
public static final int MJRL_SHANYU_SCORE
public static final int MJRL_KUINAOSHI
public static final int MJRL_AKA5S
public static final int MJRL_URADORA
public static final int MJRL_SCORE0REACH
public static final int MJRL_RYANSHIBA
public static final int MJRL_DORAPLUS
public static final int MJRL_FURITENREACH
public static final int MJRL_NANNYU
public static final int MJRL_NANNYU_SCORE
public static final int MJRL_KARATEN
public static final int MJRL_PINZUMO
public static final int MJRL_NOTENOYANAGARE
public static final int MJRL_KANINREACH
public static final int MJRL_TOPOYAAGARIEND
public static final int MJRL_77MANGAN
public static final int MJRL_DBLRONCHONBO
public static final int MJYK_REACH
public static final int MJYK_IPPATSU
public static final int MJYK_PINFU
public static final int MJYK_IPEKO
public static final int MJYK_TANYAO
public static final int MJYK_FANPAI
public static final int MJYK_TSUMO
public static final int MJYK_HAITEI
public static final int MJYK_HOTEI
public static final int MJYK_RINSHAN
public static final int MJYK_CHANKAN
public static final int MJYK_DOUBLEREACH
public static final int MJYK_CHITOI
public static final int MJYK_CHANTA
public static final int MJYK_ITTSU
public static final int MJYK_SANSHOKUDOUJUN
public static final int MJYK_SANSHOKUDOUKOU
public static final int MJYK_TOITOI
public static final int MJYK_SANANKOU
public static final int MJYK_SANKANTSU
public static final int MJYK_SHOUSANGEN
public static final int MJYK_HONROUTOU
public static final int MJYK_SANRENKOU
public static final int MJYK_RYANPEKO
public static final int MJYK_ISSHOKUSANJUN
public static final int MJYK_HONITSU
public static final int MJYK_JUNCHAN
public static final int MJYK_CHINITSU
public static final int MJYK_RENHO
public static final int MJYK_TENHO
public static final int MJYK_CHIHO
public static final int MJYK_DAISANGEN
public static final int MJYK_TSUISO
public static final int MJYK_SHOSUSHI
public static final int MJYK_DAISUSHI
public static final int MJYK_CHINROUTOU
public static final int MJYK_SUKANTSU
public static final int MJYK_RYUISO
public static final int MJYK_SUANKOU
public static final int MJYK_KOKUSHI
public static final int MJYK_CHUREN
public static final int MJYK_SISANPUTO
public static final int MJYK_DAISHARIN
public static final int MJYK_SURENKOU
public static final int MJYK_ISSHOKUYONJUN
public static final int MJYK_NAGASHIMANGAN
public static final int MJYK_DORA
public static final int MJYK_8RENCHAN
コンストラクタの詳細 |
public MIPIface()
メソッドの詳細 |
public abstract boolean isHaiThrowable(int hai)
このメソッドは、自分が牌を捨てるときに呼び出し、牌番号haiの牌を捨てることができるかどうかを確認するために使用します。
hai
- 対象となる牌の牌番号public final MJITehaiReader getTehai()
このメソッドは getTehai(0) の結果を返します。
public abstract MJITehaiReader getTehai(int player_no)
このメソッドは、現在の自分の手牌、あるいは他家の副露牌を取得するために呼び出します。
player_no
- 対象となる家。0=自家, 1=下家, 2=対面, 3=上家public final boolean getMachi(boolean[] mc)
このメソッドは getMachi(null,mc) の結果を返します。
mc
- 待ち牌を受け取るためのboolean[34]への参照public abstract boolean getMachi(MJITehaiReader t, boolean[] mc)
特定の手牌を指定して、その手牌がテンパっているかどうかを確認します。また、テンパっているときは その待ち牌を取得できます。
t
- 対象となる手牌。null の場合は自分の手牌が対象になります。mc
- 待ち牌を受け取るためのboolean[34]への参照public abstract int getAgariScore()
このメソッドは呼び出したときの状況で「あがり」を選択したときの点数を返します。 ただし裏ドラは反映されません。
public final int getAgariScore(MJITehaiReader t, int hai)
特定の手牌と当たり牌を指定して、それであがったときの点数を取得します。 このメソッドで得られる点数は普通のロンあがりの場合です。リーチや門前ツモなどの役は含みません。
t
- 対象となる手牌hai
- 当たり牌の牌番号public abstract int getAgariScore(MJITehaiReader t, MJIHaiReader hai)
特定の手牌と当たり牌を指定して、それであがったときの点数を取得します。 このメソッドで得られる点数は普通のロンあがりの場合です。リーチや門前ツモなどの役は含みません。
t
- 対象となる手牌hai
- 当たり牌public abstract MJIKawahaiReader[] getKawa(int player_no)
特定の家の現在の河牌を取得します。
player_no
- 対象となる家。0=自家, 1=下家, 2=対面, 3=上家public abstract int[] getDora()
現在のドラを配列として取得します。
public abstract int getVisibleHais(int hai)
指定した牌番号の牌が、場にいくつ見えているかを取得することができます。 このメソッドを使って、自分の手に必要な牌がまだ残っているかどうかを簡単に確認することができます。
hai
- 対象の牌の牌番号public abstract int getHaiRemain()
public abstract boolean isKKHaiable()
自分の第一ツモ時に呼び出すことで、その手牌で九種九牌で流せるかどうかを簡単に確認することができます。 なお、第一ツモ以外で呼び出したときは、常にfalseが返されます。
public abstract boolean isSSPutoable()
自分の第一ツモ時に呼び出すことで、その手牌で十三不塔であがれるかどうかを簡単に確認することができます。 なお、第一ツモ以外で呼び出したときは、常にfalseが返されます。
public final int[] getAnkanableHai()
public abstract int[] getAnkanableHai(boolean chonbo_check)
現在の自分の手牌に存在する暗カン、加カン可能な牌の牌番号の配列を取得します。 chonbo_check が true の場合は、カンすることによってチョンボになる可能性のある牌はリストアップされません。
chonbo_check
- チョンボになるカンを除外する場合は true, すべてのカン可能な牌をリストアップするなら falsepublic abstract int getScore(int player_no)
このメソッドは、特定の家の現在の点数を返します。
player_no
- 対象となる家。0=自家, 1=下家, 2=対面, 3=上家public abstract int getHonba()
public abstract int getReachBou()
public abstract boolean isLastTsumogiri()
このメソッドは、最後に捨てられた牌(自家、他家含む)がツモ切りのものであったかどうかを確認します。
public abstract int getKyoku()
public abstract int getCha()
public abstract int getYakuFan(int yaku, boolean naki)
yaku
- 役を表す整数。MJYK_XXX の定数を指定します。naki
- 副露時の飜数を取得する場合は true, そうでないなら falsepublic abstract int getWareme()
public abstract void showMessage(java.lang.String str)
このメソッドを呼び出すことで、そのAIに「発言」させることができます。 どのような形で「発言」されるかは本体プログラムの実装に依存します。
str
- メッセージpublic abstract boolean setAutoMessage(boolean f)
自動的に表示されるメッセージとは、ポン、カン、チー、ロン、ツモなどのアクションを起こしたときに 本体プログラムによって自動的に表示される「発言」のことを指します。 独自の発言をさせたい場合には、このメソッドを呼び出すことでこれらの自動的な「発言」を抑制します。
f
- 自動的にメッセージを表示させる場合は true, メッセージを抑制する場合は falsepublic abstract int getRule(int rule)
取得したいルールを rule に指定します。rule に指定する定数と戻り値の関係は下の表のようになっています。
rule | 内容 | 戻り値 |
MJRL_KUITAN | 喰い断の有無 | 0:無し,1:有り |
MJRL_KANSAKI | 完全先付けの有無 | 0:無し,1:有り |
MJRL_PAO | 包(パオ)の有無 | 0:無し,1:有り |
MJRL_RON | 複数ロンの扱い | 0:頭ハネ,1:ダブロンまで有り,2:トリプル有り |
MJRL_MOCHITEN | 持ち点 | 持ち点 |
MJRL_BUTTOBI | ぶっとびの有無 | 0:無し,1:有り |
MJRL_WAREME | 割れ目の有無 | 0:無し,1:有り |
MJRL_AKA5 | 赤五の有無 | 0:無し,1:有り |
MJRL_AKA5S | 各赤五牌の数 | bit0-3:赤五萬,bit4-7:赤五筒,bit8-11:赤五索の数 |
MJRL_SHANYU | 西入の条件 | 0:西入無し,1:無条件で西入,2:下の欄参照 |
MJRL_SHANYU_SCORE | 西入条件が2の場合 | トップの点数がこの値未満だと西入 |
MJRL_NANNYU | 南入の条件 | 0:南入無し,1:無条件で南入,2:下の欄参照 |
MJRL_NANNYU_SCORE | 南入条件が2の場合 | トップの点数がこの値未満だと南入 |
MJRL_KUINAOSHI | 食い直しの許可/禁止 | 0:禁止,1:許可 |
MJRL_URADORA | 裏ドラ・カン裏の有無 | 0:無し,1:有り(カン裏は無し),2:カン裏も有り |
MJRL_SCORE0REACH | 持ち点が900点以下でのリーチ | 0:不可,1:可能 |
MJRL_RYANSHIBA | 二翻縛りの有無 | 0:無し,1:有り |
MJRL_DORAPLUS | ドラとドラ表示牌の関係 | 0:ドラはドラ表示牌と同じ,1:ドラはドラ表示牌の次の牌 |
MJRL_FURITENREACH | フリテンリーチの可否 | bit0:流局時,bit1:ツモ時 各ビットが 0:フリテンリーチはチョンボ,1:チョンボにならない |
MJRL_KARATEN | カラテンの扱い | 0:ノーテン扱い,1:テンパイ扱い |
MJRL_PINZUMO | ピンヅモの有無 | 0:無し,1:有り |
MJRL_NOTENOYANAGARE | ノーテン親流れの有無 | bit0:東場,bit1:南場,bit2:西場,bit3:北場 各ビットが 0:無し,1:有り |
MJRL_KANINREACH | リーチ後のカンの許可/禁止 | 0:禁止,1:待ち不変で可,2:構成不変で可 |
MJRL_TOPOYAAGARIEND | オーラストップ親和がし終了 | 0:連荘,1:終了 |
MJRL_77MANGAN | 30符4翻を満貫とするか | 0:満貫としない,1:満貫とする |
MJRL_DBLRONCHONBO | 正当な和了がある場合のチョンボの扱い | 0:チョンボは無効,1:チョンボは有効 |
rule
- 設定を取得するルール。MJRL_XXX の定数を指定します。public abstract boolean isPlayerReached(int player_no)
player_no
- 対象となる家。0=自家, 1=下家, 2=対面, 3=上家public abstract boolean isHaiAnpai(int player_no, int hai)
player_no
- 対象となる家。0=自家, 1=下家, 2=対面, 3=上家hai
- 調べる牌の牌番号public abstract java.lang.Object getInterface(java.lang.String name)
本体プログラムによっては、そのプログラム固有の拡張インタフェースが実装されていることも考えられます。 このメソッドは、そのような拡張インタフェースを取得するために使用します。
name
- インタフェース名。完全なクラス名を指定します。
|
||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |