0

AndroidでGOというゲームを作り始めました(日本の伝統的なゲーム)。リファラー:GO

プレイヤーごとに条件を作りたいので、プレイヤーが順番を取得すると、条件は石の位置を見て行き、配置された石の位置が自由を得ることができれば条件を実行し、そうでなければ条件を実行します。いいえ。ここにコーディングがあります:

public void checkCondition(int position, View v){

    final ImageButton[] arrPlayer1 = { //Board
            g1  ,g2,  g3,  g4,  g5,  g6,  g7,  g8,  g9, 
            g10, g11, g12, g13, g14, g15, g16, g17, g18, 
            g19, g20, g21, g22, g23, g24, g25, g26, g27, 
            g28, g29, g30, g31, g32, g33, g34, g35, g36, 
            g37, g38, g39, g40, g41, g42, g43, g44, g45, 
            g46, g47, g48, g49, g50, g51, g52, g53, g54, 
            g55, g56, g57, g58, g59, g60, g61, g62, g63, 
            g64, g65, g66, g67, g68, g69, g70, g71, g72, 
            g73, g74, g75, g76, g77, g78, g79, g80, g81};

    int posT = position - 9; //Top Position
    int posD = position + 9;  //Down Position
    int posL = position - 1; //Left Position
    int posR = position + 1; //Right Position

    ImageView BlackStone = (ImageView) findViewById(R.drawable.BlackStone);

    if(v == arrPlayer1[position] && arrPlayer1[posT] != null){
        if(arrPlayer1[posT] == BlackStone){
            if(v == arrPlayer1[position] && arrPlayer1[posD] != null){
                if(arrPlayer1[posD] == BlackStone){
                    if(v == arrPlayer1[position] && arrPlayer1[posR] != null){
                        if(arrPlayer1[posR] == BlackStone){
                            if(v == arrPlayer1[position] && arrPlayer1[posL] != null){
                                if(arrPlayer1[posL] == BlackStone){
                                    ChangeTurn(v);
                                }else{
                                    CheckLiberty(position, v);
                                }
                            }
                        }else{
                            CheckLiberty(position, v);
                        }
                    }
                }else{
                    CheckLiberty(position, v);
                }
            }
        }else{
            CheckLiberty(position, v);
        }
    }

} 

私のロジックは、このコーディングで動的な条件を作成するため、プレイヤーがどこを向いても、石の状態が表示されます。たとえば、プレイヤーが G20 に石を配置した場合、ロジックは G11、G19、G21、G29 で表示されます。または等相互に連結された石。

int posT = position - 9; //Top Position
int posD = position + 9;  //Down Position
int posL = position - 1; //Left Position
int posR = position + 1; //Right Position

しかし、それでもエラーが発生し、logcat はメソッド (CheckCondition) で範囲外のエラー配列を返します。それで、私は何をすべきですか?どんな助けでも大歓迎です

4

1 に答える 1