Falha ao movimentar peça. Jogo

Ola pessoal…
Tou criando um jogo para materia da faculdade, e nao estou encontrando o pq a minha peça nao se move para baixo e nem para a direita, somente para cima e para a esquerda…

estou precisando muito arrumar este erro…

package gamecontrole;

public class ControlePlay
{
private int controlClick = 1;
private int antX;
private int antY;
private Imagens tab;
private int numPecas;
private boolean over;
private boolean center;
private int i_30_,i_31_,i_32_,i_33_;

public ControlePlay(Imagens imagens) {
tab = imagens;
numPecas = 17;
over = false;
center = false;
}

public void setControlClick(int i) {
controlClick = i;
}

public void play(int i, int i_0_) {
boolean bool = false;
boolean bool_1_ = false;
boolean bool_2_ = false;
boolean bool_3_ = false;
String string = new String();
int i_4_ = i / 80;
int i_5_ = i_0_ / 80;
if (isValid(i_4_, i_5_)) {
    if (controlClick == 1) {
    antX = i_4_;
    antY = i_5_;
    setControlClick(2);
    } else {
    int i_6_ = (i_4_ + antX) / 2;
    int i_7_ = (i_5_ + antY) / 2;
    if (i_30_ == 0 && i_31_ == 2 || i_30_ == 2 && i_31_ == 0 || i_30_ == 2 && i_31_ == 2){
    if (tab.getPiece(i_6_, i_7_).equals("2"))
        processPlay(i_6_, i_7_, i_4_, i_5_);
    setControlClick(1);
}
    else {
    if (tab.getPiece(i_6_, i_7_).equals("3"))
        processPlay(i_6_, i_7_, i_4_, i_5_);
    setControlClick(1);
    }
}
}

}
private boolean isValid(int i, int i_8_) {
boolean bool = false;
String string = new String();
boolean bool_9_ = false;
boolean bool_10_ = false;
string = tab.getPiece(i, i_8_);//<<<<
if (!string.equals(“1”)) {
if (controlClick == 1) {
if (string.equals(“4”))
bool = true;
} else if (string.equals(“3”)) {
int i_11_ = Math.abs(antX - i);
int i_12_ = Math.abs(antY - i_8_);

    if (i_11_ == 0 && i_12_ == 1 || i_11_ == 1 && i_12_ == 0 || i_11_ == 1 && i_12_ == 1)
        bool = true;
    //comer
    else if (i_11_ == 0 && i_12_ == 2 || i_11_ == 2 && i_12_ == 0 || i_11_ == 2 && i_12_ == 2){
        bool = true;}
    else {
        bool_9_ = bool_10_ = false;
        setControlClick(1);
    }
    i_30_=i_11_;
    i_31_=i_12_;
    i_32_=i_11_;
    i_33_=i_12_;
    } else {
    bool = false;
    setControlClick(1);
    }
}
return bool;

}

private void processPlay(int i, int i_13_, int i_14_, int i_15_) {
tab.setPiece(antX, antY, "3");
tab.setPiece(i, i_13_, "3");
tab.setPiece(i_14_, i_15_, "4");

if (i_30_ == 0 && i_31_ == 2 || i_30_ == 2 && i_31_ == 0 || i_30_ == 2 && i_31_ == 2){
numPecas--;}
else {
numPecas=numPecas;}
}

public int getNumPieces() {
return numPecas;
}

public boolean isOver() {
String[][] strings = new String[7][];
strings = tab.getTab();
if (numPecas < 20 && !over) {
    if (numPecas != 1) {
    if (!canPlay(strings))
        over = true;
    } else {
    over = true;
    boolean bool = false;
    boolean bool_16_ = false;
    int i = 0;
    int i_17_;
    if (i_30_ == 0 && i_31_ == 2 || i_30_ == 2 && i_31_ == 0 || i_30_ == 2 && i_31_ == 2){
    for (i_17_ = 0; i_17_ < strings.length && !bool; i_17_++) {
        for (i = 0; i < strings.length; i++) {
        if (strings[i_17_][i].equals("2")) {
            bool = true;//
            break;
        }
        }
    }
}
else {
            for (i_17_ = 0; i_17_ < strings.length && !bool; i_17_++) {
        for (i = 0; i < strings.length; i++) {
        if (strings[i_17_][i].equals("3")) {
            bool = true;//
            break;
        }
        }
    }
}
    if (i_17_ == 4 && i == 3)
        center = true;
    }
}
return over;
}

public boolean canPlay(String[][] strings) {
boolean bool = false;
for (int i = 0; i < strings.length && !bool; i++) {
    for (int i_18_ = 0; i_18_ < strings.length; i_18_++) {
    if (!strings[i][i_18_].equals("1")
        && !strings[i][i_18_].equals("3")) {
        if (searchRow(i, i_18_, strings)
        || searchColumn(i, i_18_, strings)) {
        bool = true;
        break;
        }
        if (i == 6 && i_18_ == 4) {
        bool = false;
        break;
        }
    }
    }
}
return bool;
}

private boolean searchRow(int i, int i_19_, String[][] strings) {
boolean bool = false;
if (i_32_ == 0 && i_33_ == 1 || i_32_ == 1 && i_33_ == 0 || i_32_ == 1 && i_33_ == 1){
if (i_19_ >= 1 && i_19_ <= 5) {
    if (strings[i][i_19_ + 1].equals("3")||(strings[i][i_19_ - 1].equals("3")))
    bool = true;
} else if (i_19_ == 0) {
    if (strings[i][i_19_ + 1].equals("3"))
    bool = true;
} else if ((i_19_ == 5) && strings[i][i_19_ - 1].equals("3"))
    bool = true;
}
else if (i_30_ == 0 && i_31_ == 2 || i_30_ == 2 && i_31_ == 0 || i_30_ == 2 && i_31_ == 2){
        if (i_19_ > 1 && i_19_ < 5) {
    if (strings[i][i_19_ + 1].equals("2") && strings[i][i_19_ + 2].equals("3")||(strings[i][i_19_ - 1].equals("2") && strings[i][i_19_ - 2].equals("3")))
    bool = true;
} else if (i_19_ == 0 || i_19_ == 1) {
    if (strings[i][i_19_ + 1].equals("2") && strings[i][i_19_ + 2].equals("3"))
    bool = true;
} else if ((i_19_ == 5 || i_19_ == 6) && strings[i][i_19_ - 1].equals("2") && strings[i][i_19_ - 2].equals("3") )
    bool = true;
}
return bool;
}

private boolean searchColumn(int i, int i_20_, String[][] strings) {
boolean bool = false;

//if (i_32_ == 0 && i_33_ == 1 || i_32_ == 1 && i_33_ == 0 || i_32_ == 1 && i_33_ == 1){
if (i >= 1 && i <= 5) {
if (strings[i + 1][i_20_].equals(“3”) ||(strings[i - 1][i_20_].equals(“3”)))
bool = true;
} if (i == 0) {
if (strings[i + 1][i_20_].equals(“3”))
bool = true;
}
if ((i == 6) && strings[i - 1][i_20_].equals(“3”))
bool = true;
//}
if (i_30_ == 0 && i_31_ == 2 || i_30_ == 2 && i_31_ == 0 || i_30_ == 2 && i_31_ == 2){
if (i > 1 && i < 5) {
if (strings[i + 1][i_20_].equals(“2”) && strings[i + 2][i_20_].equals(“3”)||(strings[i - 1][i_20_].equals(“2”) && strings[i - 2][i_20_].equals(“3”)))
bool = true;
} else if (i == 0 || i == 1) {
if (strings[i + 1][i_20_].equals(“2”) && strings[i + 2][i_20_].equals(“3”))
bool = true;
} else if ((i == 5 || i == 6) && strings[i - 1][i_20_].equals(“2”) && strings[i - 1][i_20_].equals(“3”))
bool = true;
}
return bool;
}

public boolean getStatus() {
return over;
}

public boolean pieceInCenter() {
return center;
}

}

ai esta a parte de controle do jogo…

se precisar verificar o resto eu envio o codico completo…

abraço…

grato desde já

Manda o resto do codigo para nois…

não esquece de usar o botao Code pra definir o codigo…

comente o seu codigo e diga o que cada parte faz, assim fica mais facil de identificar o seu erro.
Use a tag code

Eu tentei analizer seu código… e sinceramente… não entendi quase nada…
Primeiro… está fora das tags [ code ] e [ /code ]… o que dificulta a leitura
Segundo… ta tudo hard-coded com if e elses pra ca e pra la com um monte de variaveis com nomes parecido que nao demonstram sua função de estar lá.

Seja mais especifico mostre aonde voce move a peça e poste entre as tags code

Primeiro lugar, coloque entre as Tags CODE.

E é extremamente difícil de entender esse teu código… coloque nomes de variáveis mais claros… e comente, isso é importantíssiimo pra ti mesmo!

Eu tou tentando fazer um jogo com as seguintes regras…

Material

O jogo “Raposa e Gansos” utiliza um tabuleiro em forma de cruz, que consiste de um quadrado 3x3 no meio e quatro áreas 2x3 adjacentes a cada lado do quadrado central. Este arranjo perfaz um total de 33 pontos (ver figura em anexo). As peças podem se mover de um ponto a outro apenas ao longo das linhas que unem os pontos. Além do tabuleiro, são necessárias peças que representem uma raposa e quinze gansos.

Preparação e Objetivos

Raposa e Gansos é um jogo de desigualdade. Os gansos não podem capturar a raposa, mas têm como objetivo, por estarem em maior número, encurralar a raposa de forma que esta não mais posssa se mover. O objetivo da raposa, em contrapartida, é capturar gansos até que se torne impossível para que eles possam capturá-la. Os gansos começam ocupando todos os pontos de um braço do tabuleiro, mais a primeira linha adjacente inteira e os dois pontos extremos da linha central (ver figura em anexo). A raposa começa no ponto central do tabuleiro.

Como Jogar

Após um sorteio para decidir quem jogará com a raposa, os gansos se movem primeiro. Os jogadores se alternam para movimentar a raposa ou um ganso para um ponto adjacente ao longo de uma linha. Contudo, os gansos somente podem se mover diretamente para frente, diagonalmente para frente ou para o lado. Na vez da raposa, se um ganso estiver adjacente com um ponto livre atrás, a raposa pode capturá-lo (removê-lo) pulando sobre ele e ocupando o ponto que antes estava livre. As peças capturadas nunca são repostas em jogo.

Fim de Jogo

O jogo termina ou quando a raposa não puder mais se mover, ou quando restarem somente dois gansos. Um partida completa envolve duas rodadas, em que o desafiante joga uma vez como raposa e outra como gansos. A partida é vencida quando as duas rodadas forem vencidas pelo mesmo jogador. Caso contrário, ocorre empate.

Porem ainda tou com muita dificuldade para criar algumas restriçoes de movimento…

o jogo atualmente esta assim…
link: http://cid-65510cf98217ee44.skydrive.live.com/self.aspx/jogo%20raposa%20e%20gansos/Jogo|_RG24-11.rar

Eitaaaaaaaaaaaaaa
demorou mas chegou…
nao vejo a hora de chegar em casa pra ver…