lib.shogi
クラス Kyokumen.ZOCInformation

java.lang.Object
  上位を拡張 lib.shogi.Kyokumen.ZOCInformation
含まれているクラス:
Kyokumen

private class Kyokumen.ZOCInformation
extends java.lang.Object

ZOC情報を保持・管理する為のクラス。 局面が変わるたびにZOC情報を生成していると計算時間のコストがかさむので、本クラスを使用する。

導入されたバージョン:
1.0
バージョン:
1.0
作成者:
森岡 祐一 ( Morioka Yuichi )

フィールドの概要
private static int DOWN
           
private static int DOWN_LEFT
           
private static int DOWN_RIGHT
           
private  int[][] goteSequenceZOCInfo
          後手の飛車・竜・角・馬・香車の連続したZOC情報を保持するマップ。
private  int[][] goteZOCInfo
          後手のZOC情報。
private static int LEFT
           
private static int RIGHT
           
private  int[][] senteSequenceZOCInfo
          先手の飛車・竜・角・馬・香車の連続したZOC情報を保持するマップ。
private  int[][] senteZOCInfo
          先手のZOC情報。
private static int UP
           
private static int UP_LEFT
           
private static int UP_RIGHT
           
 
コンストラクタの概要
private Kyokumen.ZOCInformation()
           
 
メソッドの概要
private  void extendSequenceZOC(int[][] sequenceZOCInfo, int direction, int initX, int initY, boolean sente)
          他の駒に当たるか盤外に出るまで連続ZOC情報を延長する。
private  void extendSequenceZOC(int preX, int preY)
          引数で指定した筋・段に設定されている連続ZOC情報を、他の駒に当たるか盤外に出るまで延長する。
 int[][] getZOCInfo(boolean sente)
          引数で指定した方のプレイヤーのZOC情報を取得する。
 void initialize()
          エンクロージングオブジェクトのフィールドbanmenを参照して、ZOC情報を初期化する。
 void moveKoma(int preKomaInfo, int preX, int preY, int postKomaInfo, int postX, int postY)
          preX筋preY段にある駒をpostX筋postY段に移動させる。
 void putKoma(int komaInfo, int x, int y)
          x筋y段に駒を打つ。
 void removeKoma(int komaInfo, int x, int y)
          x筋y段の駒のZOC情報を削除する。
private  void shortenSequenceZOC(int[][] sequenceZOCInfo, int direction, int initX, int initY, boolean sente)
          基準にするマス以降の連続ZOC情報を短縮する。
private  void shortenSequenceZOC(int preX, int preY)
          引数で指定した筋・段に設定されているマスから先の連続ZOC情報を短縮する。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

senteZOCInfo

private int[][] senteZOCInfo
先手のZOC情報。


goteZOCInfo

private int[][] goteZOCInfo
後手のZOC情報。


senteSequenceZOCInfo

private int[][] senteSequenceZOCInfo
先手の飛車・竜・角・馬・香車の連続したZOC情報を保持するマップ。


goteSequenceZOCInfo

private int[][] goteSequenceZOCInfo
後手の飛車・竜・角・馬・香車の連続したZOC情報を保持するマップ。


UP

private static final int UP
関連項目:
定数フィールド値

UP_RIGHT

private static final int UP_RIGHT
関連項目:
定数フィールド値

RIGHT

private static final int RIGHT
関連項目:
定数フィールド値

DOWN_RIGHT

private static final int DOWN_RIGHT
関連項目:
定数フィールド値

DOWN

private static final int DOWN
関連項目:
定数フィールド値

DOWN_LEFT

private static final int DOWN_LEFT
関連項目:
定数フィールド値

LEFT

private static final int LEFT
関連項目:
定数フィールド値

UP_LEFT

private static final int UP_LEFT
関連項目:
定数フィールド値
コンストラクタの詳細

Kyokumen.ZOCInformation

private Kyokumen.ZOCInformation()
メソッドの詳細

getZOCInfo

public int[][] getZOCInfo(boolean sente)
引数で指定した方のプレイヤーのZOC情報を取得する。

パラメータ:
sente - 先手ならtrue、後手ならfalse。
戻り値:
ZOC情報。

initialize

public void initialize()
エンクロージングオブジェクトのフィールドbanmenを参照して、ZOC情報を初期化する。


putKoma

public void putKoma(int komaInfo,
                    int x,
                    int y)
x筋y段に駒を打つ。

パラメータ:
komaInfo - 駒情報(先手・後手の情報も含む)。
x - 筋。
y - 段。

extendSequenceZOC

private void extendSequenceZOC(int[][] sequenceZOCInfo,
                               int direction,
                               int initX,
                               int initY,
                               boolean sente)
他の駒に当たるか盤外に出るまで連続ZOC情報を延長する。

パラメータ:
sequenceZOCInfo - 連続ZOC情報を保存している配列。
direction - 連続ZOCの方向。フィールドUP,UP_RIGHT,...,UP_LEFTで指定する。
initX - 基準にする筋。
initY - 基準にする段。
sente - 先手ならtrue、後手ならfalse。

extendSequenceZOC

private void extendSequenceZOC(int preX,
                               int preY)
引数で指定した筋・段に設定されている連続ZOC情報を、他の駒に当たるか盤外に出るまで延長する。

パラメータ:
preX - 基準にする筋。
preY - 基準にする段。

removeKoma

public void removeKoma(int komaInfo,
                       int x,
                       int y)
x筋y段の駒のZOC情報を削除する。

パラメータ:
x - 筋。
y - 段。

shortenSequenceZOC

private void shortenSequenceZOC(int[][] sequenceZOCInfo,
                                int direction,
                                int initX,
                                int initY,
                                boolean sente)
基準にするマス以降の連続ZOC情報を短縮する。

パラメータ:
sequenceZOCInfo - 連続ZOC情報を保存している配列。
direction - 連続ZOCの方向。フィールドUP,UP_RIGHT,...,UP_LEFTで指定する。
initX - 基準にする筋。
initY - 基準にする段。
sente - 先手ならtrue、後手ならfalse。

shortenSequenceZOC

private void shortenSequenceZOC(int preX,
                                int preY)
引数で指定した筋・段に設定されているマスから先の連続ZOC情報を短縮する。

パラメータ:
preX - 基準にする筋。
preY - 基準にする段。

moveKoma

public void moveKoma(int preKomaInfo,
                     int preX,
                     int preY,
                     int postKomaInfo,
                     int postX,
                     int postY)
preX筋preY段にある駒をpostX筋postY段に移動させる。

パラメータ:
preKomaInfo - 移動前の駒情報。
preX - 移動前の筋。
preY - 移動前の段。
postKomaInfo - 移動後の駒情報。
postX - 移動後の筋。
postY - 移動後の段。